64位我需要使用IMAGE_NT_HEADERS64

64 bit do I need to use IMAGE_NT_HEADERS64?

本文关键字:IMAGE NT HEADERS64 64位      更新时间:2023-10-16

我试图在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位进程工作,我错过了什么?

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