您的位置:首页 > 其它

WinDbg学习笔记六 - 内核调试配置

2017-11-07 16:12 239 查看
内核调试可以分为三种情况: 本机内核调试,双机内核调试 - 真机双机内核调试,虚拟机双机内核调试。本篇将介绍本机内核调试以及虚拟机内核调试的配置。

本机内核调试配置

本机内核调试功能比较单一,只能读写内存,没有基本的单步断点等功能, 可以主要用来查看系统内核信息比如内核结构定义,反汇编内核函数,内核HOOK等等。目前主要是通过WinDbg自带的kldbgdrv.sys驱动调用nt!KdSystemDebugControl函数来提供支持。

通过命令运行windbg -kl, 或者界面进入本机内核调试,界面步骤如下,

打开File -> Kernel Debug, 在显示的窗口里选择Local页面,



点击OK,如果出现以下窗口,请按照上面提示的命令bcdedit -debug on来打开DEBUG功能,然后重启。



重启后再次进入内核调试,如下,



虚拟机双机内核调试配置

这里以VMWare作为虚拟机软件来演示如何设置双机调试。

1. 虚拟机创建串口Serial Port

在VMWare里打开创建好的虚拟机设置,



在设置窗口,如果没有已经存在的串口, 点底部的添加按钮添加一个串口。



像上图输入相关的设置,注意名字格式一定是\\.\pipe\开头。

在虚拟机运行的时候可以查看串口是否正确连接,



2. 设置好串口后,打开虚拟机添加调试启动项。

用管理员模式打开命令行,输入bcdedit,会显示当前的启动信息。



接下来创建一个DEBUG的调试项,输入bcdedit /copy {default} /d WINDBG



对新的启动项做一些配置,bcdedit /set  {6e83d4f2-6331-11e1-bc4a-afedf740f526} debugtype SERIAL DEBUGPORT:2 BAUDRATE:115200  (注意DEBUGPORT是2,因为第一步串口是2)



打开DEBUG选项,bcdedit /debug  {6e83d4f2-6331-11e1-bc4a-afedf740f526} on



也可以运行msconfig通过UI来修改,



关闭虚拟机。

3. 打开WinDBG, 点开File->Kernel Debug, 在第一项COM里做如下配置,然后停在这个页面。

或者也可以通过命令行运行,windbg -d -k com:pipe,port=\\.\pipe\VMWinDbg,baud=115200



4. 重启虚拟机,在选择启动项的时候停下,点第三步OK按钮开始等待虚拟机连接。





选择WINDBG启动项,回到WinDbg窗口就会看到虚拟机的信息。



另外对于VMWare,也有一款辅助的加速调试工具,vmkd,如果速度慢的话可以试一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息