为什么 NTOSKRNL.exe IMAGE_MACHINETYPE 标头字段仅在某些版本的 Windows 7 x64 上设置为 x86? [英] Why is the NTOSKRNL.exe IMAGE_MACHINETYPE header field set to x86 on only certain editions of Windows 7 x64?

查看:18
本文介绍了为什么 NTOSKRNL.exe IMAGE_MACHINETYPE 标头字段仅在某些版本的 Windows 7 x64 上设置为 x86?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using windows 7 home premium x64. I was wondering why exactly the IMAGE_MACHINETYPE field in the header of ntoskrnl in my system32 directory specifies x86. IDA will even let me disassemble it as native x86.

然而在我的 Windows 7 pro 机器上,image_machinetype 是 x64.我是不是遗漏了什么……或者为什么 ntoskrnl 在 64 位操作系统上是 32 位的?

Yet on my windows 7 pro machine, image_machinetype is x64. Am I just missing something.. or why is ntoskrnl 32 bit on a 64 bit OS?

推荐答案

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

My guess is on x64 architecture with a BIOS boot ntoskrnl.exe's main() entry point is called before the switch to long mode (64bit). Thus it would be an x86 application in so far as its entry point, but the remainder of the kernel image in the exe would be 64bit.

这篇关于为什么 NTOSKRNL.exe IMAGE_MACHINETYPE 标头字段仅在某些版本的 Windows 7 x64 上设置为 x86?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆