用于断点和延迟的无人值守 WinDbg 脚本
Unattended WinDbg script for breakpoints and delays
我想在 Windows
上调试应用程序 运行,方法是在特定地址上设置断点,等待断点命中,让应用程序暂停一段时间,然后继续。所有这些都应该以无人值守的方式完成(例如脚本)。
为此,我选择使用 WinDbg
因为脚本支持看起来很有希望。
启动 WinDbg
并通过进程名称附加到进程可以,例如通过调用以下命令来完成:
"C:\Program Files (x86)\Windows Kits\Debuggers\x64\windbg.exe" -pn my-executable.exe
设置断点是用bu
命令完成的:
bu 0x1337
继续使用 g
命令。
可以使用 .sleep
命令进行延迟:
.sleep milliseconds
对于编写 WinDbg
脚本 this PDF 可能会有帮助。
我怎样才能把它们拼凑起来?我不知道如何在遇到断点后进行延迟,也不知道如何在不加载 WinDbg
GUI 的情况下仅从命令行执行所有这些操作(包括附加)。
你需要睡什么
您可以嵌入脚本命令并将其传递给 windbg 实例
使用 -c 切换下面的命令列出模块并退出会话
windbg -c "lm;q" calc.exe
你可以把它放在一个 batfile 里面 运行 batfile
喜欢
cdb -c "bu %2 \".sleep 5000;g\";g" %1.exe
一张 gif 显示我如何在 winmain 上休息 5 秒,然后允许 exe 运行 下面
我想在 Windows
上调试应用程序 运行,方法是在特定地址上设置断点,等待断点命中,让应用程序暂停一段时间,然后继续。所有这些都应该以无人值守的方式完成(例如脚本)。
为此,我选择使用 WinDbg
因为脚本支持看起来很有希望。
启动 WinDbg
并通过进程名称附加到进程可以,例如通过调用以下命令来完成:
"C:\Program Files (x86)\Windows Kits\Debuggers\x64\windbg.exe" -pn my-executable.exe
设置断点是用bu
命令完成的:
bu 0x1337
继续使用 g
命令。
可以使用 .sleep
命令进行延迟:
.sleep milliseconds
对于编写 WinDbg
脚本 this PDF 可能会有帮助。
我怎样才能把它们拼凑起来?我不知道如何在遇到断点后进行延迟,也不知道如何在不加载 WinDbg
GUI 的情况下仅从命令行执行所有这些操作(包括附加)。
你需要睡什么
您可以嵌入脚本命令并将其传递给 windbg 实例
使用 -c 切换下面的命令列出模块并退出会话
windbg -c "lm;q" calc.exe
你可以把它放在一个 batfile 里面 运行 batfile 喜欢
cdb -c "bu %2 \".sleep 5000;g\";g" %1.exe
一张 gif 显示我如何在 winmain 上休息 5 秒,然后允许 exe 运行 下面