Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

Возможно ли стирание программой своего 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 3.522 c
3-1106213481
SERGGG
2005-01-20 12:31
2005.02.20
SQL BUILDER


9-1100688436
Bryke
2004-11-17 13:47
2005.02.20
Высоко сижу...


1-1107929867
Алекс
2005-02-09 09:17
2005.02.20
Проверка готовности дисковода


14-1106736531
Ломброзо
2005-01-26 13:48
2005.02.20
Этопесец


3-1106599767
Urvin
2005-01-24 23:49
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский