windows上检查PE格式文件(c语言)
windows下检查PE格式文件(c语言)
windows下检查PE格式文件(c语言)
windows下检查PE格式文件(c语言)
#include <windows.h> #include <stdio.h> int main() { HANDLE hFile; IMAGE_DOS_HEADER dosHeader; IMAGE_NT_HEADERS ntHeader; DWORD dwRead; hFile = CreateFile("D:\\software\\eclipse\\eclipse.exe", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile == INVALID_HANDLE_VALUE) { printf("file not found!\n"); } ReadFile(hFile, &dosHeader, sizeof(dosHeader), &dwRead, NULL); if(dwRead == sizeof(dosHeader)) { if(dosHeader.e_magic == IMAGE_DOS_SIGNATURE) { if(SetFilePointer(hFile, dosHeader.e_lfanew, NULL, FILE_BEGIN) != -1) { ReadFile(hFile, &ntHeader, sizeof(ntHeader), &dwRead, NULL); if(dwRead == sizeof(ntHeader)) { if(ntHeader.Signature == IMAGE_NT_SIGNATURE) { printf("it's a pe file!\n"); return 1; } } } } } printf("it's not a pe file!\n"); return 0; }