簡體   English   中英

在windbg中,如何在kernel32.dll中的所有函數上設置斷點?

[英]In windbg, How to set breakpoint on all functions in kernel32.dll?

我想在example.DLL的函數example()中弄清楚調用序列和函數kernel32.dll。

在windbg中,如何在kernel32.dll中的所有函數上設置斷點?

我試過bm kernel32!* ,但似乎不行。

我不會像上述那樣做。 當然有可能,但如果用bm /a kernel32!*完成,你無意中也會在數據符號上設置bps(而不是實際函數)。 在您的情況下, wt - trace和監視數據(您可以在隨windbg包提供的debugger.chm中查找)可能就是您所追求的。

在某些低級內核服務DLL調用中設置斷點可能會導致應用程序異常。

您可以使用rohitab的API監視器來觀察其DLL調用,然后在您有趣的調用上設置斷點。

Kernel32是一個使用頻繁的DLL - 你可能會發現打破每個函數都太吵了。 你也不需要打破每個kernel32函數,只需要輸出它們。

如果我是你,我會運行“link / dump / exports kernel32.dll”,將輸出寫入文件,然后編寫一個簡單的腳本來獲取函數名稱並寫出“bp kernel32!” +新文件的函數名稱。 然后,只需將該文件的內容粘貼到windbg命令窗口即可。

使用調試器中的腳本支持可能有一種簡單的方法來執行此操作,但是您可以在更短的時間內通過調試器腳本來學習如何執行此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM