Windbg的使用之内核调试

本地内核调试

  1. 以管理员命令运行cmd开启本地内核调试
bcdedit /debug ON
bcdedit /dbgsettings local
  1. 新建或更改原来引导的高级选项:

3.Windbg

Ctrl+K选择loacl模式

双机调试

一台主机调试另一台主机,就是双机调试。

配置双机调试有着多种方式,根据需要自行选择双机调试方式。

准备工作:

  • 一个安装了windows操作系统的虚拟机

  • 需要一个windbg,要求与被调试机器的位数一样

一、使用串行端口进行调试

  1. 添加debug调试模式

确认虚拟机是否有空闲的串口,没有空闲串口的话,会导致设置串口命令失败,以至于调试不成功。
有的情况下使用以下命令:(有打印机的情况下改com1为com2)

粘贴板	:需要将ID改为第一个生成的引导ID,实在不知道的可以看下面的解释

bcdedit /copy {current} /d debug

bcdedit /displayorder {0f5d104d-61af-11ef-a516-f6e667248ef6} /addlast

bcdedit /dbgsettings SERIAL DEBUGPORT:2 BAUDRATE:115200

bcdedit /bootdebug {0f5d104d-61af-11ef-a516-f6e667248ef6} ON

bcdedit /debug {0f5d104d-61af-11ef-a516-f6e667248ef6} ON

bcdedit /timeout 30




环境变量配置(网速快选择)
_NT_SYMBOL_PATH

SRV*E:\symbol* https://msdl.microsoft.com/download/symbols

解释,想看看,不看也罢
bcdedit
Boot Configuration Data (BCD) 编辑器的命令行工具,用于管理启动配置数据。

bcdedit /copy {current} /d debug
复制当前引导为新引导,新引导文件名:debug
进入msconfig查看引导进行确认

bcdedit /displayorder {**6ebe99f0-cf67-11eb-99ea-000c2915a63a**} /addlast
添加到重启时引导显示的末尾,仅仅复制并不会在重启引导显示出来。这个ID是新引导生成的。
/displayorder: 该选项用来设置或查看启动菜单中显示的启动条目的顺序。
/addlast: 将指定的启动条目添加到显示顺序的末尾。

bcdedit /dbgsettings SERIAL DEBUGPORT:1 BAUDRATE:115200
设置系统通过串行端口(COM1)以 115200 波特率进行内核调试。

bcdedit /bootdebug {**6ebe99f0-cf67-11eb-99ea-000c2915a63a**} ON
/bootdebug: 该选项用来控制是否为选定的启动项启用或禁用引导调试。
`ON`: 启用引导调试。

bcdedit /debug {**6ebe99f0-cf67-11eb-99ea-000c2915a63a**} ON
用于启用指定启动加载项的内核调试功能。

bcdedit /timeout 30
设置 Windows 启动管理器在自动启动默认操作系统前的等待时间。
  1. Windbg快捷方式设置

    //Windbg快捷方式-->右键属性-->目标 插入 -y 以及之后的内容。(有符号也可以从-b开始)
    
    "C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x86\windbg.exe" -y SRV*E:\symbol*http://msdl.microsoft.com/download/symbols -b -k com:port=//./pipe/com_1,baud=115200,pipe
    
  2. 检查

确定三张图串口名称保持一致



  1. 登录成功之后
加载符号表
lm 			#查看符号有没有下载成功 
ld * 		#加载所有符号表  

二、使用双机调试工具 VirtualKD

使用 VirtualKD:

  1. 在目标机器中安装选项目标包
  2. 物理主机开启 VirtualKD
  3. 开启虚拟机,选择调试模式,选择禁用驱动签名

下载地址:VirtualKD - 下载

第一步、VirtualKD环境介绍

第二步: 打开虚拟机

  • 注:关键字(VT)(虚拟化)(CPU),重启进入BIOS,到CPU选项开启 VT

第三步:配置windbg

在安装完WDK开发工具包之后,里面含有Windbg

WinDbg的目录是固定的,如下所示:

  • x86:C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\WinDbg.exe

  • x64C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\WinDbg.exe

第四步: 连接到虚拟机

第五步: 设置调试符号

srv*D:\symbowin10_64_NEW*http://msdl.microsoft.com/download/symbols

修复WinDBG符号问题(万能方法)

// Step1. 设置WinDBG符号服务器及本地符号文件目录
kd> .sympath SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
// Step2. 使得WinDBG在获得符号的时候取得更多的信息
kd> !sym noisy
// Step3. 查看Windows的ntoskrnl模块
kd> !lmi  
// Step4. 重新加载符号(/f为无视延迟加载项,强制立即重新加载)
kd> .reload /f  
posted @ 2025-06-14 19:44  Loomingsafe  阅读(54)  评论(0)    收藏  举报