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 }