<!--more-->
char szFile[MAX_PATH] = {0}; GetDlgItemText(IDC_EDIT1,szFile,MAX_PATH);
HANDLE hFile = CreateFile(szFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
HANDLE hMap = CreateFileMapping(hFile,NULL,PAGE_READONLY,0,0,NULL);
LPVOID lpBase = MapViewOfFile(hMap,FILE_MAP_READ,0,0,0);
CloseHandle(hMap);
CloseHandle(hFile);
BOOL IsPeFile(LPVOID lpBase) { PIMAGE_DOS_HEADER pimgDosHdr = NULL; PIMAGE_NT_HEADERS pimgNtHdr = NULL; pimgDosHdr = (PIMAGE_DOS_HEADER)lpBase; if(pimgDosHdr->e_magic != IMAGE_DOS_SIGNATURE) { return FALSE; } pimgNtHdr = (PIMAGE_NT_HEADERS)((DWORD)lpBase + (DWORD)pimgDosHdr->e_lfanew) if(pimgNtHdr->Signature != IMAGE_NT_SIGNATURE) { return FALSE; } return TRUE; }
|