ورود

View Full Version : جلوگیری از اجرای یک فایل exe



qazwsx
یک شنبه 15 فروردین 1389, 22:54 عصر
میخواستم بدونم به چه صورت میشه از اجرای یک فایل exeجلوگیری کرد مثلا ما کنار برنامه یک فایل به نام .1.exe داریم حالا میخوایم که کاربر این فایل رو اجرا نکنه لطفا راهنمایم کنید

tdkhakpur
یک شنبه 15 فروردین 1389, 23:42 عصر
خب تعدادی از بایتهای هدر فایل را عوض کنید.
ولی اگر آن فایل exe هم توسط شما طراحی شده است بهترین راه پارمتر پذیر کردن فایل میتواند مناسب باشد. یعنی برای اجرای فایل باید نقاطی از ram یا هر مکان دیگر دارای مقادیر خاص باشند تا به عنوان کلید اجرا مورد استفاده قرار گیرد

abazzi
یک شنبه 15 فروردین 1389, 23:54 عصر
خب تعدادی از بایتهای هدر فایل را عوض کنید.
ولی اگر آن فایل exe هم توسط شما طراحی شده است بهترین راه پارمتر پذیر کردن فایل میتواند مناسب باشد. یعنی برای اجرای فایل باید نقاطی از ram یا هر مکان دیگر دارای مقادیر خاص باشند تا به عنوان کلید اجرا مورد استفاده قرار گیرد

من اصلا متوجه نشدم در ضمن فرض کنید exe رو ما طراحی نکرده ایم

شبیر کریمی
دوشنبه 16 فروردین 1389, 10:40 صبح
فایل مورد نظر رو بصورت Exclusive باز کنید.در این صورت تا زمانی که برنامه شما در حافظه هست فایل قفل میشه.



var
f:tfilestream;
begin
f:=TFileStream.Create('1.exe',fmShareExclusive );
end;

Felony
دوشنبه 16 فروردین 1389, 10:55 صبح
بهترین راه تغیرر هدر فایل exe هست ، برای اجرا هم دوباره تغیرات رو برگردونید به حالت اول ...

abazzi
دوشنبه 16 فروردین 1389, 12:16 عصر
بهترین راه تغیرر هدر فایل exe هست ، برای اجرا هم دوباره تغیرات رو برگردونید به حالت اول ...

میشه یکم توضیح بیشتر بدی

h_mohamadi
دوشنبه 16 فروردین 1389, 13:24 عصر
اگر exe را خودمان نوشته باشیم باید چی کار کنیم

tdkhakpur
دوشنبه 16 فروردین 1389, 13:52 عصر
من اصلا متوجه نشدم در ضمن فرض کنید exe رو ما طراحی نکرده ایم

خب هدر فایل را تغییر بدید یعنی 256 بایت اول را ازش (فایل) بگیرید و مکان دیگری ذخیره کنید و به جای 256 بایت 0 قرار بدید - وقتی کارتان تمام شد این مقادیر را به جای اصلی برگردانید


اگر exe را خودمان نوشته باشیم باید چی کار کنیم

خب اگر کار شما به این شکل هست شما داخل برنامه - اجرا را مقید به یک مکانی از ram یا از حافظه map شده بکنید
کدها مربوط به help دلفی هست که میتوانید خودتان نحوه کاربردشان را پیدا کنید


HANDLE CreateFileMapping(
HANDLE hFile, // handle to file to map
LPSECURITY_ATTRIBUTES lpFileMappingAttributes, // optional security attributes
DWORD flProtect, // protection for mapping object
DWORD dwMaximumSizeHigh, // high-order 32 bits of object size
DWORD dwMaximumSizeLow, // low-order 32 bits of object size
LPCTSTR lpName // name of file-mapping object
);

LPVOID MapViewOfFile(
HANDLE hFileMappingObject, // file-mapping object to map into address space
DWORD dwDesiredAccess, // access mode
DWORD dwFileOffsetHigh, // high-order 32 bits of file offset
DWORD dwFileOffsetLow, // low-order 32 bits of file offset
DWORD dwNumberOfBytesToMap // number of bytes to map
);

BOOL UnmapViewOfFile(
LPCVOID lpBaseAddress // address where mapped view begins
);

تحلیل کار به این شکل هست که شما داخل ram یک مکانی را رزرو میکنید و به آن مکان یک اسم خاص میدید و تا وقتی که کامپیوتر خاموش نشده یا به اصطلاح ram از دست نرفته این مکان را دارید و میتوانید داخل این مکان داده های خودتان را قرار دهید تا سایر برنامه های شما بتوانند وجود این مکان را با توجه به اسمی که به آن دادید پیدا نموذه و با بررسی پارامتر های موجود در این مکان اجرا بشوند.

Felony
دوشنبه 16 فروردین 1389, 15:26 عصر
اگر exe را خودمان نوشته باشیم باید چی کار کنیم
برنامتون رو با یک پارامتر خاص اجرا کنید ، به راحتی به وسیله ParamStr و ParamCount پارامتری که برنامه باهاش اجرا شده رو بخونید و اگر پارامتر مورد نظر نبود برنامه رو ببندید .

h_mohamadi
دوشنبه 16 فروردین 1389, 17:45 عصر
می شود یک نمونه بگذارید!!!
ممنونم

Mask
سه شنبه 17 فروردین 1389, 19:38 عصر
این یه نمونه سادست

h_mohamadi
پنج شنبه 19 فروردین 1389, 16:27 عصر
سلام
ممنونم ولي من يک نمونه اي مي خواستم که يک exe از داخل يک exe ديگر باز شود ولي اگر برروي exe دوم کليک شد باز نشود.

Felony
جمعه 20 فروردین 1389, 06:21 صبح
یک نمونه براتون نوشتم ، ضمیمه رو ببینید .