最近在读《格蠹汇编》第八章时,书中提到在windbg中执行kn命令显示栈回溯,USER32!NtUserMessageCall调用了ntdll!KiFastSystemCall,但在windbg中执行uf USER32!NtUserMessageCall时,结果如下:
0:000> uf USER32!NtUserMessageCall
USER32!NtUserMessageCall:
77d194b2 b8cc110000 mov eax,11CCh
77d194b7 ba0003fe7f mov edx,offset SharedUserData!SystemCallStub (7ffe0300)
77d194bc ff12 call dword ptr [edx]
77d194be c21c00 ret 1Ch
USER32!NtUserMessageCall调用了SharedUserData!SystemCallStub中保存的值,SharedUserData!SystemCallStub是一个地址,这个值是0x7ffe0300,在windbg中查看7ffe0300处的值,
0:000> dd 7ffe0300
7ffe0300 7c92e4f0 7c92e4f4 00000000 00000000
7ffe0310 00000000 00000000 00000000 00000000
7ffe0320 00000000 00000000 00000000 00000000
7ffe0330 95ed03c5 00000000 00000000 00000000
7ffe0340 00000000 00000000 00000000 00000000
7ffe0350 00000000 00000000 00000000 00000000
7ffe0360 00000000 00000000 00000000