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 大蝦寫的,太...