3环进入0环是通过中断门找到cs eip寄存器的值,然而我在逆向代码的过程中并没有看到有代码切换cs和eip的内核或者用户层代码,我想这应该是CPU的一个功能,自动将中断门描述里面的数值拿到cpu的寄存器中。跨段提权CS改变,ss、 esp寄存器也应该跟着改变,在ntdll.dll与ntoskrnl.exe的kiintsystemcalld代码中并没有发现有更改ss、esp的代码。但是ss与esp已经改变了。所以我猜测这也应该是一个硬件的行为。有哪位大哥能告我这是一个怎样的堆栈切换过程么?非常感谢。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
cpu的源代码是用C语言开发的 还是汇编语言开发的
SSH山水画 TSS
木志本柯 能不能对硬件进行逆向呢??
可以参照Intel开发者手册Volume 2,Chapter 4——4.3中SYSENTER一节,加上Windbg调试以理解。
Windbg调试可以参阅该文——http://lmao123.com/index.php/40.html
MSR?不一定非要切换ss,可以继续用ring3。
wowocock 看INTEL和AMD的指令手册,32位下看SYSENTER,64位下看SYSCALLL