了解windows系统调用调度程序?

了解windows系统调用调度程序?,windows,assembly,reverse-engineering,dispatcher,dispatch,Windows,Assembly,Reverse Engineering,Dispatcher,Dispatch,我正在尝试做一些反转,以找出幕后的函数调用 在使用windbg进行调试时,我遇到了一个电话 mov edx,offset SharedUserData!SystemCallStub call dword ptr [edx] 调用下面的代码 ntdll!KiFastSystemCall: 8bd4 mov edx,esp 0f34 sysenter 根据文档,eax包含系统调用序号。 eax中的值为11CC 我想弄清楚,这个函数到底是什么,它将

我正在尝试做一些反转,以找出幕后的函数调用

在使用windbg进行调试时,我遇到了一个电话

mov     edx,offset SharedUserData!SystemCallStub
call    dword ptr [edx]
调用下面的代码

ntdll!KiFastSystemCall:

8bd4        mov     edx,esp
0f34        sysenter
根据文档,eax包含系统调用序号。 eax中的值为11CC


我想弄清楚,这个函数到底是什么,它将被调用。有人知道我该如何继续吗?

基本上,您需要一种方法来卸载SSDT-在x32上,这很容易做到。可能最简单的方法是寻找一个实用程序,它将沿着必要的索引转储SSDT,您将看到与这个特定索引对应的内容。基本上,eax将在函数表中存储一个索引,因此系统禁用器将在某个时候执行调用函数表[eax]可以找到调用表的最新列表

0x1xxx范围用于Win32 K系统调用。有关列表,请参阅。

感谢您的回复。你指的是什么?太棒了。但遗憾的是,我找不到11CC的条目:(您确定您正在以正确的方式解析eax中的值吗?另外-这是32位还是64位,因为在64中,disaptch机制发生了轻微的更改。例如,函数表没有函数索引,而是从阴影表的开头开始偏移?无论如何,我建议您首先阅读Windows Internals最新版本。)Mark Russinovich获得呼叫调度的高级概述,然后在掌握了调试器输出的知识后,我正在XP 32位上调试。(我在win7上没有任何成功)。我将再次调试。谢谢。这个列表真的很有帮助。