Why is the NTOSKRNL.exe IMAGE_MACHINETYPE header field set to x86 on only certain editions of Windows 7 x64?

萝らか妹 提交于 2019-12-19 07:49:57

问题


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.

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?


回答1:


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.



来源:https://stackoverflow.com/questions/7457298/why-is-the-ntoskrnl-exe-image-machinetype-header-field-set-to-x86-on-only-certai

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!