我想在windbg中放置一个条件断点。
例如,让我们说 LoadLibrary API。
我如何设置断点,以便在加载 user32.dll 时应该设置断点。
> x kernel32!LoadLibraryW
它会给出一些地址 [XXXX]
现在我可以将断点设置为
> bu [XXXX]
但这将适用于对 LoadLibraryW 的所有调用。
有什么建议么。
我想在windbg中放置一个条件断点。
例如,让我们说 LoadLibrary API。
我如何设置断点,以便在加载 user32.dll 时应该设置断点。
> x kernel32!LoadLibraryW
它会给出一些地址 [XXXX]
现在我可以将断点设置为
> bu [XXXX]
但这将适用于对 LoadLibraryW 的所有调用。
有什么建议么。
您不能在 user32.dll 上设置条件断点,因为它相对较早地被映射到地址空间,并且在此之后触发了初始调试器的断点(据我所知)。
如果您可以跟踪加载 user32.dll 的那一刻,您可以像这样覆盖模块中断:
sxe ld user32.dll
您可以做的是让您的应用程序由 boostrapper 应用程序启动,然后在 user32.dll 加载时让 Windows 调试器中断。只需使用 -o 命令行选项或.childdbg 1
扩展调用来启动子进程的调试并使用 cmd.exe 启动它,例如:
windbg -c "sxe ld user32.dll;g" -o cmd.exe /C yourapp.exe
我对您问题中的文字和标题感到有些困惑。但是假设你想设置一个条件断点,你应该看一下文档,因为它在这个主题上有很多细节。