1

我正在尝试在 Windows 64 环境中读取某些进程的 PE 标头,并且由于我的代码仅通过读取 32 位和 64 位可执行文件的 IMAGE_NT_HEADERS 结构来工作,我想知道:我是否需要编写类似的东西

if executable is 64 bit
 use IMAGE_NT_HEADERS64
else
 use IMAGE_NT_HEADERS

? 我的代码似乎只使用 IMAGE_NT_HEADERS 来处理 64 位和 32 位进程,我错过了什么吗?

4

1 回答 1

2

显然,区别在于OptionalHeader的某些字段。例如 64 位版本的 ImageBase 是 64 位大小。如果您的代码在(包括)之后不使用任何字段ImageBase- 您的代码将通过测试。

于 2013-01-03T00:54:22.087 回答