无人值守的WinDbg脚本,用于断点和延迟

时间:2019-03-30 05:10:09

标签: windows debugging windbg

我要调试在Windows上运行的应用程序,方法是在某个地址上设置断点,一直等到命中该断点,然后将应用程序暂停一段时间,然后继续运行。所有这些都应以无人值守的方式(例如脚本)完成。

为此,我选择使用WinDbg,因为脚本支持似乎很有希望。

例如,可以启动WinDbg并按进程名称附加到进程。通过调用以下命令来完成:

"C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\windbg.exe" -pn my-executable.exe

使用bu命令设置断点:

bu 0x1337

继续使用g命令。

可以使用.sleep命令进行延迟:

.sleep milliseconds

对于编写WinDbg脚本this PDF可能会有所帮助。

如何将它们拼凑在一起?我没有弄清楚如何能在达到断点后延迟,也不知道如何仅从命令行执行所有这些操作(包括附加操作)而根本不加载WinDbg GUI。

1 个答案:

答案 0 :(得分:2)

您需要睡觉的时间

您可以嵌入脚本命令并将其传递给windbg实例

使用-c切换下面的命令,列出模块并退出会话

windbg -c“ lm; q” calc.exe

您可以将其放在batfile中并运行batfile 像

cdb -c "bu %2 \".sleep 5000;g\";g" %1.exe

一张gif文件,显示我如何在winmain上崩溃,在允许exe在下面运行之前睡了5秒钟

enter image description here