2012-01-27 61 views
3

我正在嘗試做一些反轉來找出幕後的函數調用。瞭解Windows系統調用調度程序?

在使用WinDbg中我碰到一個電話來了調試,

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

調用導致下面的代碼,

NTDLL KiFastSystemCall:

8bd4  mov  edx,esp 
0f34  sysenter 

this文檔,EAX包含系統調用序號。 並且eax中的值是11CC。

我想弄清楚,究竟是什麼,這個函數將被調用。有沒有人有任何想法,我怎麼能進一步?

回答

4

基本上你需要一種傾倒SSDT的方式 - 在x32上這可以很容易地完成。可能最簡單的方法是尋找一個可以將SSDT轉儲到必要索引上的實用程序,並且您將看到與此特定索引相對應的內容。基本上eax會在函數表中存儲一個索引,因此係統解除器會在某個時間點做call FunctionTable[eax]可以找到最新的調用表列表here

+0

感謝您的回覆。你是指[this](http://undocumented.rawol.com/sbs-w2k-b-kernel-api-functions.pdf)? – MacGeek 2012-01-27 10:57:17

+0

我會推薦更多同時代的東西:http://j00ru.vexillium.org/ntapi/ – LordDoskias 2012-01-27 11:07:25

+0

太棒了。但遺憾的是我找不到11CC的入口。 ( – MacGeek 2012-01-27 11:17:12

2

0x1xxx範圍用於Win32k系統調用。請參閱here獲取列表。

+0

謝謝,這個列表確實有幫助。 – MacGeek 2012-01-30 15:12:39