为什么NTOSKRNL.exe IMAGE_MACHINETYPE标头字段仅在某些版本的Windows 7 x64上设置为x86?

Nic*_*ick 5 64-bit kernel windows-7

我正在使用Windows 7家庭高级版x64.我想知道为什么我的system32目录中的ntoskrnl标头中的IMAGE_MACHINETYPE字段指定了x86.IDA甚至会让我把它拆解为原生x86.

但是在我的windows 7 pro机器上,image_machinetype是x64.我只是遗漏了什么......或者为什么64位操作系统上的ntoskrnl 32位?

Jer*_*wdy 4

我的猜测是在 x64 架构上,BIOS 启动 ntoskrnl.exe 的 main() 入口点在切换到长模式(64 位)之前被调用。因此,就其入口点而言,它是一个 x86 应用程序,但 exe 中内核映像的其余部分将是 64 位。