-
-
[旧帖]
KiFastCallEntry的一点不解
0.00雪花
-
发表于:
2012-2-21 22:11
4434
-
[旧帖] KiFastCallEntry的一点不解
0.00雪花
在KiFastCallEntry开始处构造了一个KTRAP_FRAME,iretd返回时发现代码如下:
804df36c 83c404 add esp,4 ; 指向KTRAP_FRAME.Eip
804df36f cf iretd ; pop KTRAP_FRAME.Eip, KTRAP_FRAME.SegCs, KTRAP_FRAME.EFlags
iretd后会到下面
ntdll!KiFastSystemCallRet:
7c92e514 c3 ret ; 与call dword ptr [edx]相对应
不解这中间内核栈是如何切换到用户栈了,查了资料没说iretd会pop出 KTRAP_FRAME.HardwareSegSs和KTRAP_FRAME.HardwareEsp,因此KiFastSystemCallRet的ret怎么会在用户栈了呢?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课