首頁 > 类库下载 > C#類別庫 > 再說程式運行後自刪除的方法(C++原始碼)

再說程式運行後自刪除的方法(C++原始碼)

巴扎黑
發布: 2016-12-20 14:44:34
原創
2616 人瀏覽過

JohnChen分析了一下Gary Nebbett寫的一段程式自刪除的程式。是很精妙的一段程式碼,精妙之處在於其進程尚在,但可執行檔已經被刪除了。

我前段時間也寫了一段自刪除程式碼,不過沒有那麼高深,只是利用了批次的功能,在程式的最後呼叫我這個函數,就能夠將自己刪除。現在把函數程式碼貼出來。

void SelfDelete() 
{
static char templ[] = 
":Repeatrn"
"del "%s"rn"
"if exist "%s" got Repeatrn "%s"" ;
static const char tempbatname[] = "_uninsep.bat" ;

char modulename[MAX_PATH] ; 
char temppath[MAX_PATH] ;
char folder[MAX_PATH] ; ;
strcat(temppath, tempbatname) ;

GetModuleFileName(NULL, modulename, MAX_PATH) ;
strcpy (folder, modulename) ;
char *pb = strormfolder, '
*pb = 0 ;

HANDLE hf ;

hf = CreateFile(temppath, GENERIC_WRITE, 0, NULL, 
CREATE_ALWAYS, FILE_ATTRIBUTE_NORMALUE, N7_NOAL, N8 DWORD len ;
char *bat ;

bat = (char*)alloca(strlen(templ) + 
strlen(modulename) * 2 + strlen(temppath) + 20) ;

wsprintf(bat, templ, modulename, modulename, der, modulenames) ;

WriteFile(hf, bat, strlen(bat), &len, NULL) ;
CloseHandle(hf) ;

ShellExecute(NULL, "open", temppath, NULL, NULL, SW_HIDE);
);

相關標籤:
c
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
vim c-x c-o 補全出現新的窗口
來自於 1970-01-01 08:00:00
0
0
0
合併HTML與C++:實作HTML與C++的結合
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板