Windbg双机调试配置
原理简介
要使用Windbg进行内核级调试,必须进行双机调试配置,因为被调试的对象是整个虚拟机操作系统内核,而不仅仅是其中的某个应用程序或进程。
配置虚拟机的管道串口
使用VMware制作Windows10虚拟机,安装完成后进入编辑虚拟机设置,若存在打印机则将其移除(因为打印机占用了com_1
端口,而后续双机通信要使用的就是com_1
端口)。然后点击下方的添加,添加串行端口,选择使用命名的管道并输入\\.\pipe\com_1
,剩下两项保持默认的该端是服务器和另一端是应用程序,勾选I/O模式中的轮询时主动放弃CPU,最后点击确定。
此处展示本人已配置好的设置
配置被调试机的管道串口
在虚拟机中以管理员身份运行命令行,依次输入如下指令:
1 | bcdedit /dbgsettings serial baudrate:115200 debugport:1 #设置端口com_1, baudrate为115200 |
1 | bcdedit /copy {current} /d DebugEntry #复制一个开机选项, 以进入OS的debug模式,需要记住此时的ID号 |
1 | bcdedit /displayorder {current} {上一步得到的ID号} #在引导菜单中增加一个新的选项 |
1 | bcdedit /debug {上一步得到的ID号} ON #激活debug |
配置好之后效果如下图所示
配置WinDbg的管道串口
为Windbg创建一个桌面快捷方式,然后在属性中的目标一栏中内容的双引号后面追加
1 | -b -k com:pipe,port=\\.\pipe\com_1,resets=0` |
下载符号表
创建一个名为_NT_SYMBOL_PATH
的系统环境变量,srv*d:\ctftools\symbols*http://msdl.microsoft.com/download/symbols
,其中*d:\ctftools\symbols*
是缓存符号表的位置,可自行更改。
开始调试
重启虚拟机,在开机选项中选择BebugEntry
同时开启Windbg,其就能检测到被调试的对象,即可开始调试
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 hanafuda_store's Blog!