Windbg双机调试配置
原理简介要使用Windbg进行内核级调试,必须进行双机调试配置,因为被调试的对象是整个虚拟机操作系统内核,而不仅仅是其中的某个应用程序或进程。
配置虚拟机的管道串口使用VMware制作Windows10虚拟机,安装完成后进入编辑虚拟机设置 ,若存在打印机 则将其移除(因为打印机占用了com_1端口,而后续双机通信要使用的就是com_1端口)。然后点击下方的添加 ,添加串行端口,选择使用命名的管道 并输入\\.\pipe\com_1,剩下两项保持默认的该端是服务器 和另一端是应用程序 ,勾选I/O模式中的轮询时主动放弃CPU ,最后点击确定。
此处展示本人已配置好的设置
配置被调试机的管道串口在虚拟机中以管理员身份运行命令行,依次输入如下指令:
1bcdedit /dbgsettings serial baudrate:115200 debugport:1 #设置端口com_1, baudrate为115200
1bcdedit /copy {current} /d DebugEntry #复制一个开机选项, 以进入OS的debug模式,需要记住此时的ID号
1bcdedit /displayorder {current} {上一步得到的ID号} #在引导菜单中增加一个新的选项
1bcdedit /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,其就能检测到被调试的对象,即可开始调试