我正在尝试在Windows 64环境中读取某些进程的PE头,并且由于我的代码只是通过读取32位和64位可执行文件的IMAGE_NT_HEADERS结构而工作,我想知道:我是否需要编写类似的内容
if executable is 64 bit
use IMAGE_NT_HEADERS64
else
use IMAGE_NT_HEADERS
?我的代码似乎只对64位和32位进程使用IMAGE_NT_HEADERS,我错过了什么?
答案 0 :(得分:2)
显然,区别在于OptionalHeader的某些领域。例如,64位版本的ImageBase是64位大小。如果您的代码在ImageBase
(包括)之后不使用任何字段 - 您的代码将通过测试。