windows – Win32 API,用于判断给定的二进制文件(EXE或DLL)是x86
发布时间:2020-12-13 20:34:12 所属栏目:Windows 来源:网络整理
导读:我试图找到一种编程方式来判断二进制文件是x86,x64还是ia64. 平台:Windows. 语言:c / c. 背景:在尝试加载第三方dll之前,我需要找出它的位数. 感谢任何指针. 对于EXE 使用GetBinaryType(…) Here is same question for manged exe. 对于DLL(和EXE) 使用Ima
我试图找到一种编程方式来判断二进制文件是x86,x64还是ia64.
平台:Windows. 背景:在尝试加载第三方dll之前,我需要找出它的位数. 感谢任何指针.
对于EXE
使用GetBinaryType(…) Here is same question for manged exe. 对于DLL(和EXE) 使用ImageNtHeader(…)获取文件的PE数据,然后检查IMAGE_FILE_HEADER.Machine字段. Here is some code我发现使用谷歌代码搜索 没有清理并且没有错误检查 // map the file to our address space // first,create a file mapping object hMap = CreateFileMapping( hFile,NULL,// security attrs PAGE_READONLY,// protection flags 0,// max size - high DWORD 0,// max size - low DWORD NULL ); // mapping name - not used // next,map the file to our address space void* mapAddr = MapViewOfFileEx( hMap,// mapping object FILE_MAP_READ,// desired access 0,// loc to map - hi DWORD 0,// loc to map - lo DWORD 0,// #bytes to map - 0=all NULL ); // suggested map addr peHdr = ImageNtHeader( mapAddr ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |