gpt4 book ai didi

c++ - 如何检测给定的 PE 文件(exe 或 dll)是 64 位还是 32 位

转载 作者:可可西里 更新时间:2023-11-01 18:12:15 26 4
gpt4 key购买 nike

我需要检测给定的 .dll 或 .exe 文件是 32 位还是 64 位

目前我只有一个解决方案:从指定文件中读取 PE header 并从那里获取“机器”字段。

(规范: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 格式中的某些特定字段或某些特殊的系统函数)?

最佳答案

GetBinaryType(...)为基于 Windows 的 32 位应用程序返回 SCS_32BIT_BINARYSCS_64BIT_BINARY 用于基于 Windows 的 64 位应用程序。

关于c++ - 如何检测给定的 PE 文件(exe 或 dll)是 64 位还是 32 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com