我想找出函數在example.DLL
kernel32.dll 的調用序列和函數。在windbg中,如何在kernel32.dll中的所有函數上設置斷點?
在windbg中,如何設置kernel32.dll中所有函數的斷點?我試過bm kernel32!*
,但似乎不起作用。
我想找出函數在example.DLL
kernel32.dll 的調用序列和函數。在windbg中,如何在kernel32.dll中的所有函數上設置斷點?
在windbg中,如何設置kernel32.dll中所有函數的斷點?我試過bm kernel32!*
,但似乎不起作用。
我不會那樣說。當然這是可能的,但如果使用bm /a kernel32!*
,您也會無意中在數據符號上設置bps(與實際功能相反)。在你的情況下,wt
-跟蹤和觀察數據(你可以在windbg軟件包提供的debugger.chm中查找)可能就是你要做的。
Kernel32是一個使用頻率很高的DLL--你可能會發現打破每個函數的方式太吵了。你也不需要在每個kernel32函數上打破它,就是它的輸出。
如果我是你,我會運行「鏈接/轉儲/導出kernel32.dll」,將輸出寫入文件,然後編寫一個簡單的腳本來抓取函數名並寫出「bp kernel32!」。 +將函數名稱添加到新文件。然後,只需將該文件的內容粘貼到windbg命令窗口即可。
在調試器中可能有一種直接的方法來完成這項工作,但是您可以在較短的時間內通過調試器腳本來學習如何執行上述腳本。
感謝您的建議。 – whunmr
在某些低級內核服務DLL調用中設置斷點可能會導致應用程序異常。
您可以使用rohitab's API monitor來觀察它的DLL調用,然後在您的 有趣的調用上設置斷點。
感謝您提供API監視器。這正是我期待的! – Adarsha
感謝您的建議。 – whunmr