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,勾选了 Pipe 和 Reconnect),点击 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 ▶️ 按钮),虚拟机瞬间解除冻结,继续正常运行。
相关推荐
奈落242 小时前
AI辅助的另一面:从2026年国际AI安全报告的“故障”清单到国内专家的可靠性短板,自主行动的Agent为什么更难及时干预
人工智能·安全·agent·本地部署·ai 办公
赛博守夜人7 小时前
AI安全攻防与治理之十六:对抗样本、恶意文件与多模态攻击,AI 内容安全检测的真实盲区
人工智能·安全
知已难寻8 小时前
03 · OpenStack的计算管理 Nova
运维·服务器·开发语言·云原生·云计算·openstack·开源软件
ZEB11069 小时前
首届安全应急救援机器人大赛在广州举办 深圳璇玑动力斩获多项冠军
安全·机器人·消防
未来之窗软件服务11 小时前
WAF负载均衡+蜜罐混淆安全体系-东方仙盟
运维·安全·负载均衡·仙盟创梦ide·东方仙盟·阿雪技术观·网关开发
高德开放平台12 小时前
构建“车-云-端”安全闭环:新大洲本田通过高德开放平台接入“鹰眼守护预警系统”
安全
dora13 小时前
接口被疯狂调用怎么办?聊聊接口限流
后端·安全
国科安芯13 小时前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射
kingx314 小时前
Bugku WEB 题解总集:文件包含 / SQLi / 反序列化 / SSTI / 反爬 / 组件漏洞
web安全·网络安全·ctf·bugku
衡石科技14 小时前
让多轮问数保持口径一致:Data Agent 的上下文、偏好与学习开关
人工智能·学习·安全