Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Возможно ли стирание программой своего EXE файла ?   Найти похожие ветки 

 
JohnKorsh   (2005-02-03 16:11) [0]

Не поскажет ли кто возможно ли из программы стереть её EXE файл. Вариант типа

F   : file of byte;
S   : string;

S := ParamStr [0];
AssignFile (F,S);
Erase (F);

не работает ещё на этапе отладки, может чего не так делаю ?


 
Digitman ©   (2005-02-03 16:14) [1]


> возможно ли из программы стереть её EXE файл


документированными средствами - нет.
а недокументированные средства ненадежны и относятся к разряду "грязного хака".


 
Erik1 ©   (2005-02-03 17:43) [2]

Можно, здесь уже было большое обсуждение этой темы. Помню был такой код:
procedure DeleteSelf;
var
 module: HModule;
 buf: array[0..MAX_PATH - 1] of char;
 p: ULong;
 hKrnl32: HModule;
 pExitProcess,
 pDeleteFile,
 pFreeLibrary: pointer;
begin
 module := GetModuleHandle(nil);
 GetModuleFileName(module, buf, SizeOf(buf));
 CloseHandle(THandle(4));
 p := ULONG(module) + 1;
 hKrnl32 := GetModuleHandle("kernel32");
 pExitProcess := GetProcAddress(hKrnl32, "ExitProcess");
 pDeleteFile := GetProcAddress(hKrnl32, "DeleteFileA");
 pFreeLibrary := GetProcAddress(hKrnl32, "FreeLibrary");
 asm
   lea eax, buf
   push 0
   push 0
   push eax
   push pExitProcess
   push p
   push pDeleteFile
   push pFreeLibrary
   ret
 end;
end;


 
Digitman ©   (2005-02-03 17:49) [3]


> Erik1 ©   (03.02.05 17:43) [2]


это и есть элемент "грязного хака" ... причем - только для маздайной платформы


 
SaveDialog12331   (2005-02-03 21:53) [4]

http://www.delphirus.net.ru/
www.delphiworld.ru
Дай поиск комикадзе или камикадзе
Найдешь там
А пример Erik1 если впихнуть не пощитает ли какой антивирус его вирусом?


 
Anatoly Podgoretsky ©   (2005-02-03 22:31) [5]

Digitman ©   (03.02.05 17:49) [3]
При чем ограниченной.


 
i-s-v ©   (2005-02-04 02:37) [6]

Можно... Что-то в реестр записать надо. А что - не помню... И после перезагрузки файла не будет


 
GrayFace ©   (2005-02-04 05:17) [7]

Можно создать и запустить .bat файл, который пытается удалить exe, а, когда удасться, удаляет себя. Пример - uninstall.bat в Artmoney.


 
JohnKorsh   (2005-02-04 08:37) [8]

Спасибо, помогло.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
1-1106684239
Ser_max
2005-01-25 23:17
2005.02.20
Маска ввода


8-1099981756
Kair
2004-11-09 09:29
2005.02.20
Программное усиление звука


14-1107207759
Logun
2005-02-01 00:42
2005.02.20
ВАС ИЗ ДАС .NET


14-1107201670
Ломброзо
2005-01-31 23:01
2005.02.20
+1!


4-1104760474
Positive
2005-01-03 16:54
2005.02.20
управление внешним приложением