![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможно ли стирание программой своего EXE файла ? [D5, Win95/98, WinXP]
JohnKorsh © (2005-02-03 16:11:00)Не поскажет ли кто возможно ли из программы стереть её EXE файл. Вариант типа
F : file of byte;
S : string;
S := ParamStr [0];
AssignFile (F,S);
Erase (F);
не работает ещё на этапе отладки, может чего не так делаю ?
JohnKorsh (2005-02-04 08:37:00) [1]Спасибо, помогло.
GrayFace (2005-02-04 05:17:00) [2]Можно создать и запустить .bat файл, который пытается удалить exe, а, когда удасться, удаляет себя. Пример - uninstall.bat в Artmoney.
i-s-v (2005-02-04 02:37:00) [3]Можно... Что-то в реестр записать надо. А что - не помню... И после перезагрузки файла не будет
Anatoly Podgoretsky (2005-02-03 22:31:00) [4]Digitman © (03.02.05 17:49) [3]
При чем ограниченной.
SaveDialog12331 (2005-02-03 21:53:00) [5]http://www.delphirus.net.ru/
www.delphiworld.ru
Дай поиск комикадзе или камикадзе
Найдешь там
А пример Erik1 если впихнуть не пощитает ли какой антивирус его вирусом?
Digitman (2005-02-03 17:49:00) [6]
> Erik1 © (03.02.05 17:43) [2]
это и есть элемент "грязного хака" ... причем - только для маздайной платформы
Erik1 (2005-02-03 17:43:00) [7]Можно, здесь уже было большое обсуждение этой темы. Помню был такой код:
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 16:14:00) [8]
> возможно ли из программы стереть её EXE файл
документированными средствами - нет.
а недокументированные средства ненадежны и относятся к разряду "грязного хака".