了解系统调用Windows的调度程序?

时间:2012-01-27 10:42:29

标签: windows assembly reverse-engineering dispatcher dispatch

我正在尝试进行一些反转以找出场景背后的函数调用。

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

mov     edx,offset SharedUserData!SystemCallStub
call    dword ptr [edx]

致电以下代码,

NTDLL KiFastSystemCall:

8bd4        mov     edx,esp
0f34        sysenter

根据this文档, eax包含系统调用序号。 并且eax中的值是11CC。

我想弄清楚,这个函数究竟会被调用。有谁知道我怎么能继续前进?

2 个答案:

答案 0 :(得分:4)

基本上你需要一种倾销SSDT的方法 - 在x32上这可以轻松完成。可能最简单的方法是查找一个实用程序,它会沿着必要的索引转储SSDT,你会看到与这个特定索引相对应的内容。基本上,eax会在函数表中存储一个索引,因此系统解析器会在某个时刻call FunctionTable[eax]找到最新的调用表列表here

答案 1 :(得分:2)

0x1xxx范围适用于Win32k系统调用。有关列表,请参阅here