我需要检测给定的.dll或.exe文件是32位还是64位。
目前我只有一种解决方案:从指定文件中读取PE头并从中获取“Machine”字段。
(规范:Microsoft Portable Executable and Common Object File Format Specification (.docx文件),在“3.3.COFF文件头(对象和映像)”一节中)
该字段最多可以有约20个值。其中三个是:
目前我只有一种解决方案:从指定文件中读取PE头并从中获取“Machine”字段。
(规范:Microsoft Portable Executable and Common Object File Format Specification (.docx文件),在“3.3.COFF文件头(对象和映像)”一节中)
该字段最多可以有约20个值。其中三个是:
IMAGE_FILE_MACHINE_I386 ( == 32bit )
IMAGE_FILE_MACHINE_IA64 ( == 64bit )
IMAGE_FILE_MACHINE_AMD64 ( == 64bit )
我的问题:
1)“机器”到位数的映射是否正确?我有没有遗漏什么?还有其他需要注意的地方吗?
2)是否有更简单的方法来检测32/64位(可能是PE格式中我没有注意到的特定字段或某些特殊系统函数)?