1 #include<iostream> 2 #include<Windows.h> 3 using namespace std; 4 5 int main() 6 { 7 HANDLE hFile = CreateFile(L"E:\\Project_Sum\\CC++\\test\\test\\Thread_syn.exe", 8 GENERIC_READ | GENERIC_WRITE, 9 FILE_SHARE_READ, 10 NULL, 11 OPEN_EXISTING, 12 FILE_ATTRIBUTE_NORMAL, 13 NULL); 14 15 DWORD fileSize = GetFileSize(hFile,NULL); //获得文件大小的低两字节 16 char* fileBuff = new char[fileSize]; //创建缓冲区 17 DWORD realRead = 0; 18 BOOL ret = false; 19 ret = ReadFile(hFile, fileBuff, fileSize, &realRead, NULL); //拷贝文件的内容给缓冲区fileBuff 20 if (ret) 21 { 22 PIMAGE_DOS_HEADER pDosHeaders = (PIMAGE_DOS_HEADER)fileBuff; //得到DOS头结构体 23 if (pDosHeaders->e_magic != 0x5A4D) //访问DOS头结构体的e_magic内容来判断是否为PE文件 24 { 25 cout << "不是有效的PE文件" << endl; 26 delete[] fileBuff; //删除创建的空间 27 return 0; 28 } 29 cout << "是有效的PE文件" << endl; 30 delete[] fileBuff; //删除创建的空间 31 } 32 CloseHandle(hFile); //删除句柄 33 return 0; 34 }