如何配置WinDbg和VMware实现内核的调试

设置 VMware 的虚拟串口

运行 VMware,首先将 Guest OS 系统电源关闭,这样才能修改该系统的虚拟机设置。
在这里插入图片描述
单击界面上的“编辑虚拟机设置”选项对虚拟机的属性进行设置。
单击“添加”按钮,打开 VMware 的 添加硬件向导 对话框
选择“串行端口”,并单击“ Next >”按钮
在这里插入图片描述
选择“ 使用命名的管道 ”,并单击“ Next >”按钮
第一个输入框中输入“ \\.\pipe\com_1”,表示该虚拟串口将要映射到 Host OS 的管道名称。
第二个框中选择“该端是服务器”,表示 Guest OS 是被调试的系统
第三个框中选择“另一端是应用程序”,表示 Host OS 将使用一个调试软件来作为管道的另一端。
设备状态,勾选“启动时连接”,表示在开启虚拟机操作系统时,与这个虚拟设备(串口),建立连接。单击“ 完成”,按钮
在这里插入图片描述
此时,可以看到 Hardware 列表中已经有了一个新的设备, 串行端口(使用管道名:
\\.\pipe\com_1)。这里还要勾选右侧“I/O 模式”中的“ 轮询时主动放弃CPU ”选项
至此就完成了对 VMware 串口的设置。
在这里插入图片描述

修改 Guest OS 的启动配置文件

在刚才设置完虚拟串口后,这里需要重启虚拟机中的 Guest OS。进入系统后,我们要对系统的启动配置文件作一些修改,才能使 Host OS 中的 WinDbg 调试该系统。
Windows 20 00、 Windows XP 、 Windows 200 3 系统的启动配置文件位于系统盘根目录下的 boot.ini,该文件默认是有保护属性的。
执行 attrib -s -h -r c:\boot.ini 去除保护属性,然后开始编辑该文件,一个默认的 boot.ini 文件
在这里插入图片描述
将其修改为
在这里插入图片描述
最后,修改完 boot.ini 文件后,执行 attrib +s +h +r c:\boot.ini 恢复该文件的保护属性。

Windows Vista以后win7等操作

从 Windows V ista 开始,考虑到 boot.ini 文件很容易被恶意软件所修改,因此不再使用 boot.ini 文件,而是使用 Boot Configuration Data(BCD)。修改 BCD,需要启动一个管理员权限的命令行窗口。然后使用 bcdedit 命令来编辑 BCD。首先将当前启动入口复制一份,

bcdedit /copy {current} /d "Win7 Debug"

在这里插入图片描述
其中双引号中的字符串(“Win7 Debug” )为新启动入口的名称。如果执 行 成 功 , 会 得 到 新 启 动 入 口 的 GUID , 即 图中 的 “ {ad2983ae-3010-11ee-b297-b234ec8321b1}”,用来唯一标识这个启动入口。

接着,我们需要对这个启动入口,启用内核调试

bcdedit /debug {ad2983ae-3010-11ee-b297-b234ec8321b1} on

在这里插入图片描述
BCD 中有一套全局的调试设置,使用 bcdedit /dbgsettings 可以观察和修改这套全局设置。
在这里插入图片描述
默认的全局调试设置中,调试类型为 Serial,调试端口为 1,波特率为 115200,这已经是我们需要的设置了。

当然也可以通过如下命令再次设置为串口调试

bcdedit /dbgsettings serial DEBUGPORT:1 BAUDRATE:115200

如果希望为某个自启动项设置单独的调试选项,那么可以使用 bcdedit /set 命令, 例如:

bcdedit /set {ad2983ae-3010-11ee-b297-b234ec8321b1} debugtype serial
bcdedit /set {ad2983ae-3010-11ee-b297-b234ec8321b1} debugport 1
bcdedit /set {ad2983ae-3010-11ee-b297-b234ec8321b1} baudrate 115200

至此虚拟机中的 Guest OS 就设置好了,先不要重启,当下一步设置好 WinDbg 后,再重新启动。

设置 WinDbg 参数

首先在桌面或快速启动栏中创建一个 WinDbg 的快捷方式,然后修改这个快捷方式属性中
的“快捷方式”。

将“快捷方式”页中的“目标(T)”框中加上以下参数:

-b -k com:port=\\.\pipe\com_1,baud=115200,pipe

在这里插入图片描述

重启虚拟机中的 Guest OS

重启虚拟机,将会看到如图所示两个系统入口,选择“ Microsoft W indows XP Professional – debug”,然后安下回车键。
在这里插入图片描述
回车后,会发现系统貌似卡住一样,这其实是系统在等待串口另一端的调试程序与其建立连接。

启动 WinDbg

这时启动刚才设置好的 WinDbg 快捷方式,发现很快 WinDbg 就连上虚拟机中的 Guest OS了,如果很长时间没有连接上的话, 可以单击 WinDbg 菜单中的"Debug"->“Kernel Connection”->“Resynchronize”。连接后的效果
在这里插入图片描述
接下来就可以通过 WinDbg 来调试虚拟机中的 Guest OS 了

输入命令g即可开启windows
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于内核调试Windbg 是一种常用的工具。它是微软官方提供的调试器,用于调试 Windows 操作系统的内核模式和用户模式程序。以下是一些关于使用 Windbg 进行内核调试的基本步骤: 1. 准备环境:首先需要安装 Windbg 调试工具,并确保目标机器上已经启用了内核调试。 2. 连接目标机器:使用串口、网络或火线等方式将目标机器连接到调试机器上。 3. 配置符号文件路径:在调试机器上设置符号文件路径,以便 Windbg 能够正确解析调试信息。 4. 启动 Windbg:打开 Windbg 工具,并选择内核模式调试。可以通过 File -> Kernel Debug... 或者 Ctrl+K 快捷键来选择。 5. 配置调试连接:在弹出的对话框中,选择调试连接的方式和连接参数,比如选择串口调试、网络调试或火线调试,并输入相应的参数。 6. 开始调试:点击 OK 后,Windbg 会尝试与目标机器建立连接,并开始内核调试。在这个阶段,可以观察到目标机器的启动过程,并在 Windbg 中查看和分析调试信息。 7. 运行调试命令:在 Windbg 中可以使用各种调试命令来控制调试过程,比如设置断点、查看寄存器、内存和堆栈等信息,以及执行单步调试调试器命令等。 8. 分析问题:通过观察调试信息和运行调试命令,可以分析出问题的原因,并进一步进行故障排除和调试。 需要注意的是,内核调试是一项高级调试技术,对于初学者来说可能有一定的难度。在进行内核调试之前,建议先熟悉 Windbg 的基本使用方法,并了解一些常见的内核调试技巧和技术。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jeromeyoung666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值