WinDbg 双机调试(调试机为Windows11系统,被调试机为Windows7系统)

一、实验环境

  1. 调试机:Windows 11操作系统(我电脑上使用的系统);
  2. 被调试机:Windows 7操作系统(VMware中安装的系统);
  3. 调试工具:WinDbg(微软官网下载).

二、被调试机配置

  1. **关闭(关机)**你的 Win7 虚拟机。
  2. 点击虚拟机的 "编辑虚拟机设置"
  3. 点击下面的 "添加..." (Add...) 按钮。
  4. 选择 "串行端口" (Serial Port),点击下一步。
  5. 选择 "输出到命名管道" (Output to named pipe),点击下一步。
  6. 设置如下:
    • 命名管道:填入 \\.\pipe\com1
    • 第一个下拉框选:该端是服务器 (This end is the server)
    • 第二个下拉框选:另一端是应用程序 (The other end is an application)
  7. 非常重要 :在串口设置页面,一定要勾选右上角的 "轮询时放弃 CPU" (Yield CPU on poll)
  8. 点击确定保存。

三、在Win7虚拟机内开启串口调试

  1. 启动 Win7 虚拟机。
  2. 打开"开始"菜单,搜索 cmd右键点击 cmd 选择"以管理员身份运行",执行以下命令。
  3. 重启,当出现黑底白字的启动菜单时,先用上下方向键停在菜单上,不要进系统
bash 复制代码
bcdedit /copy {current} /d Windows7-2mdebug             ------->   创建一个新的引导项
bcdedit /timeout 10                                     ------->   设置超时时间为10s
bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS      ------->   关闭强制数字签名
bcdedit /set testsigning on                             ------->   开启系统测试模式
bcdedit /debug on                                       ------->   开启调试功能
bcdedit /bootdebug on                                   ------->   开启调试功能
bcdedit /dbgsettings                                    ------->   查看调试配置
bcdedit /dbgsettings serial debugport:1 baudrate:115200 ------->   设置调试端口为1,波特率为115200

四、在你的实体机(Win11)上连接调试

  1. 在你的实体机 上安装最新版的 WinDbg(可以直接在微软应用商店 Microsoft Store 搜索 WinDbg 下载安装 WinDbg - Windows drivers | Microsoft Learn)。
  2. 在实体机上以管理员身份打开 WinDbg。
  3. 点击菜单栏 File -> Attach to kernel
  4. 切换到 COM 选项卡,设置如下:Baud Rate: 115200;Port: \\.\pipe\com1;勾选 Pipe (管道);勾选 Reconnect (重新连接)
  5. 点击 OK 。此时实体机上的 WinDbg 会显示 Waiting to reconnect...
  6. 最后,回到 VMware 窗口,按下回车让 Win7 启动

五、下载符号

在双机调试模式下,只要虚拟机在"自由运行",你是不能在 WinDbg 里输入命令的(所以底下显示 BUSY)。如果你想输入调试命令,你必须先**"冻结"**虚拟机的内核。

操作步骤如下:

  1. 暂停内核(Break入断点): 在 WinDbg 的顶部菜单栏(Home 选项卡),找到一个 "暂停"图标(⏸️ Break) ,点击它。 (点完之后,你的 Win7 虚拟机会瞬间卡住,鼠标完全动不了------不要慌,这是内核被你成功冻结了,是正常现象!)

  2. 下载符号(现在你实体机的网络没问题了): 冻结内核后,WinDbg 底部的输入框就可以用了,提示符会变成 kd>。 依次输入这两条命令并回车(新版 WinDbg 只需要最简单的命令即可):

    复制代码
    .symfix
    
    .reload /f

    等待进度条跑完,符号很快就能下载好。

  3. 让虚拟机恢复运行(Go): 如果你想让虚拟机解除冻结、继续运行,只需在 kd> 后面输入字母 g (代表 Go),然后回车;或者点击顶部菜单栏的 "播放"图标(▶️ Go)。你的 Win7 虚拟机就会瞬间复活!

六、以后每次使用的"开机三步曲"

第一步:先让 WinDbg "蹲点守候"
  1. 在你的实体机上,打开 WinDbg。
  2. 点击菜单 File -> Kernel Debugging(或者直接点击最近使用的连接记录)。
  3. 确认 COM 选项卡里的设置没变(Port是 \\.\pipe\com1,勾选了 PipeReconnect),点击 OK
  4. 此时 WinDbg 界面会显示 Waiting to reconnect...(等待重新连接),把 WinDbg 放在旁边不用管它。
第二步:启动虚拟机
  1. 打开 VMware,正常开启你的 Win7 虚拟机
  2. 就在虚拟机刚亮屏、开始加载 Windows 的那一瞬间,你的 WinDbg 就会自动"咔"的一下连上,显示 Connected to Windows 7...
  3. 等待虚拟机完全开机进入桌面。此时 WinDbg 底部会显示 *BUSY* Debuggee is running...,表示虚拟机正在正常运行。
第三步:随时冻结,随时调试

当你想要看内核状态、下断点或者输入命令时:

  1. 点击 WinDbg 左上角的 "暂停" (Break ⏸️) 按钮。
  2. 此时 Win7 虚拟机画面会完全卡死(被冻结),WinDbg 底部出现 kd> 提示符。
  3. kd> 后面输入你的调试命令(比如 lm 看模块,!process 0 0 看进程等),按回车执行。
  4. 调试完后,在 kd> 后面输入 g 并回车(或者点左上角的 Go ▶️ 按钮),虚拟机瞬间解除冻结,继续正常运行。
相关推荐
Thecozzy2 小时前
游戏后端线上事故复盘
安全
kp000002 小时前
AI系统输入安全基线
人工智能·安全·网络安全·信息安全·ai安全
菩提小狗2 小时前
每日安全情报报告 · 2026-07-19
网络安全·漏洞·cve·安全情报·每日安全
解局易否结局3 小时前
鸿蒙 PC 应用开发实战:文件系统与沙箱安全存储
安全·华为·harmonyos
拉格朗日(Lagrange)3 小时前
【CISP】信息安全评估全解析
安全
解局易否结局3 小时前
鸿蒙原生开发实战|Native 加密与安全:NAPI + OpenSSL 构建全栈密文服务
安全·华为·harmonyos
guoheng3 小时前
我们用 RealVuln 测试了 AI 代码扫描工具:召回率、精确率与误报对比
安全·架构
kp000003 小时前
NER(Named Entity Recognition)命名实体识别
人工智能·网络安全·信息安全·ai安全
小码哥哥4 小时前
企业AI知识库本地部署的安全真相
人工智能·安全