在windbg中,如何在kernel32.dll中的所有函数上设置断点?

时间:2009-12-04 17:31:13

标签: c++ windbg

我想弄清楚kernel32.dll的调用顺序和函数 在example()中的函数example.DLL中。

在windbg中,如何在kernel32.dll中的所有函数上设置断点?

我尝试了bm kernel32!*,但似乎无效。

3 个答案:

答案 0 :(得分:5)

我不会像上述那样做。当然有可能,但如果使用bm /a kernel32!*,你无意中也会在数据符号上设置bps(而不是实际函数)。在您的情况下wt - 跟踪和监视数据(您可以在随windbg软件包提供的debugger.chm中查找)可能就是您所追求的。

答案 1 :(得分:5)

在某些低级内核服务DLL调用中设置断点可能会导致应用程序异常。

您可以使用rohitab's API monitor观察其DLL调用,然后在您的调用上设置断点 有趣的电话。

答案 2 :(得分:2)

Kernel32是一个使用频繁的DLL - 你可能会发现打破每个函数都太吵了。您也不需要打破每个kernel32函数,只需要它们导出的函数。

如果我是你,我会运行“link / dump / exports kernel32.dll”,将输出写入文件,然后编写一个简单的脚本来获取函数名称并写出“bp kernel32!” +新文件的函数名称。然后,只需将该文件的内容粘贴到windbg命令窗口中即可。

使用调试器中的脚本支持可能有一种简单的方法可以做到这一点,但是您可以在更短的时间内通过调试器脚本学习如何实现它来一起破解上述脚本。