Главная страница
    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.46 MB
Время: 0.036 c
14-1107244946
Jaxtor
2005-02-01 11:02
2005.02.20
Запуск CGI приложения и обработка его результата


9-1100609331
Colt1978
2004-11-16 15:48
2005.02.20
Прогресс бар...


3-1106153549
_alien_
2005-01-19 19:52
2005.02.20
Как в DBGrid добавить SpinEdit?


4-1104954636
Arnold
2005-01-05 22:50
2005.02.20
Как узнать список файлов в выбранной директории?


3-1106666853
Diks
2005-01-25 18:27
2005.02.20
Тригеры





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский