我正在尝试在 Windows 64 环境中读取某些进程的 PE header ,因为我的代码仅通过读取 32 位和 64 位可执行文件的 IMAGE_NT_HEADERS 结构来工作,我想知道:我是否需要编写类似
if executable is 64 bit
use IMAGE_NT_HEADERS64
else
use IMAGE_NT_HEADERS
?我的代码似乎只对 64 位和 32 位进程使用 IMAGE_NT_HEADERS 就可以工作,我是不是遗漏了什么?
最佳答案
很明显,区别在于OptionalHeader的某些字段。例如 64 位版本的 ImageBase 是 64 位大小。如果您的代码在 ImageBase
(包括)之后不使用任何字段 - 您的代码将通过测试。
关于c++ - 64 位 Windows - 我需要使用 IMAGE_NT_HEADERS64 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14131443/