windows双机调试

如何调试内核

windows vm

win10/11 虚拟机

安装好VM,禁止系统更新,避免gadget地址改变。

神奇的字符串,不知道为什么出现在这里

1
2
KH2J9-PC326-T44D4-39H6V-TVPBY   // 10
BCQNW-3VWYB-4V7QD-M6R2B-7MH26 // 11

调试内核

符号信息

WinDbg preview –> File –> setting –> debugging setting –> default symbol path

  • 如果在指定的目录找不到,就会远程下载
1
srv*C:\Symbols*https://msdl.microsoft.com/download/symbols

双机调试

管道

WinDbg 双机调试内核。

  • 虚拟机添加一个串行端口,选择命名管道,这个命名管道形式如:\\.\pipe\com_1,选择该端是服务,另一端是应用程序
  • windbg 选择 attach to kernel

待调试机器:添加一个串口设备,使用命名的管道;开机后管理员开启cmd

1
2
3
4
bcdedit /dbgsettings serial baudrate:115200 debugport:1
bcdedit /copy "{current}" /d WinDebug # 这一步成功会生成一个引导项,打印出其uuid
bcdedit /displayorder "{current}" "{uuid}" # 指定开机进入上一步的引导项
bcdedit /debug "{uuid}" on # 开启debug

调试机器:windbg attach kernel,填内容

  • 波特率:115200
  • 管道:待调试机器的命名管道
  • resets: 0

也可使用 也可 win+r 运行 msconfig

网络

Set up KDNET network kernel debugging manually

1
2
3
bcdedit /debug on
bcdedit /dbgsettings net hostip:w.x.y.z port:n
shutdown -r -t 0

打开签名认证开关

1
bcdedit/set testsigning on

显示为 Debuggee is running...,后来才知道需要点击顶栏 break 进行断点

还可以使用 VS 调试。

参考:双机内核调试