3

舞台裏の関数呼び出しを見つけるために、いくつかの逆転を試みています。

windbg を使用してデバッグしているときに、呼び出しに遭遇しました。

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

呼び出しは以下のコードにつながります。

ntdll!KiFastSystemCall:

8bd4        mov     edx,esp
0f34        sysenter

このドキュメントによると、 eax にはシステム コール序数が含まれています。 eax の値は 11CC です。

私は、実際に呼び出されるこの関数が何であるかを理解しようとしています。どうすればさらに先に進むことができるか、誰にもわかりませんか?

4

2 に答える 2

4

基本的に、SSDT をダンプする方法が必要です。x32 では、これは簡単に実行できます。おそらく最も簡単な方法は、必要なインデックスに沿って SSDT をダンプするユーティリティを探すことです。この特定のインデックスに対応するものが表示されます。基本的に、eax は関数テーブルにインデックスを格納するため、システム ディスパッチャーはある時点でこれを行います call FunctionTable[eax]。呼び出しテーブルの最新のリストは、ここにあります。

于 2012-01-27T10:44:56.860 に答える
2

0x1xxxの範囲は、Win32kシステムコール用です。リストについては、こちらをご覧ください。

于 2012-01-27T14:04:50.123 に答える