delphi 程式自刪除函式 DeleteMe

2021-04-19 22:30:31 字數 1098 閱讀 9083

delphi 程式自刪除函式 deleteme 德州行業網

procedure deleteme;

varbatchfile: textfile;

batchfilename: string;

processinfo: tprocessinformation;

startupinfo: tstartupinfo;

begin

batchfilename := extractfilepath(paramstr(0)) + '$$del$$.bat';

assignfile(batchfile, batchfilename);

rewrite(batchfile);

writeln(batchfile, ':try');

writeln(batchfile, 'del "' + getshortname(paramstr(0)) + '"');

writeln(batchfile, 'if exist "' + getshortname(paramstr(0)) + '"' + ' goto try');

writeln(batchfile, 'del %0');

writeln(batchfile, 'cls');

writeln(batchfile, 'exit');

closefile(batchfile);

fillchar(startupinfo, sizeof(startupinfo), $00);

startupinfo.dwflags := startf_useshowwindow;

startupinfo.wshowwindow := sw_hide;

if createprocess(nil, pchar(batchfilename), nil, nil,

false, idle_priority_class, nil, nil, startupinfo,

processinfo) then

begin

closehandle(processinfo.hthread);

closehandle(processinfo.hprocess);

end;

end;

程式自刪除

之所以可以使用批處理來實現檔案自刪除,是因為批處理有乙個特別的地方就是 批處理提供了自己刪除自己的命令 del 0這個命令,批處理執行完後,就會把自身檔案刪除了,而且不放進 站。所以,有了這個關鍵技術作為前提,使用批處理方式實現程式的自刪除,就好理解了。這樣,程序建立起來,執行批處理檔案。等批處理檔...

執行後自刪除程式

當乙個可執行程式exe在執行過程中,程式檔案無法刪除,這是因為系統將每個正在執行的程式對應的硬碟檔案 對映到記憶體,即虛擬記憶體,要實現自刪除,關鍵一點在程式退出前將程式從記憶體對映中解放出來,然後 再呼叫檔案操作函式刪除程式檔案!typedef int winapi pfclose lpvoid ...

EXE程式的自刪除實現

程式的自刪除已經不是什麼新鮮的話題了,它廣泛運用於木馬 病毒中。試想想,當你的程式還在執行中 通常是完成了駐留 感染模組 它就自動地把自己從磁碟中刪掉,這樣一來,就做到了神不知鬼不覺,呵呵,是不是很cool呢?自刪除 self deleting 最早的方法是由 gary nebbett 大蝦寫的,太...