VMware+Windbg+Win7 内核驱动调试 ----(环境搭建)

来源:互联网 发布:股票佣金万2怎么算法 编辑:程序博客网 时间:2024/04/27 23:06

本文主要记录个人安装VMware+Windbg+Win7内核驱动调试的笔记。

一、安装环境


主机:      Win7 sp1 x64

虚拟机: VMware 8 
虚拟机OS: Win7 sp1 x32    
Windbg: 6.12  

二、虚拟机配置

1.打开相应 vmware 虚拟机上的 “Virtaul Machine Settings“

2.为了省事,这里将Printer 删除,为了让新配置的Serial Port 为1(如果不删除Printer,后面配出来的会是SerialPort =2,这还需要在虚拟机中再命令设置)

(一)VMware+Windbg+Win7 内核驱动调试 ----(环境搭建) - 3792615 - 独一飞的博客 

     3.点击下面的ADD 添加一个新端口,请按照图片上的设置

             

(一)VMware+Windbg+Win7 内核驱动调试 ----(环境搭建) - 3792615 - 独一飞的博客

4.”Next”,在 “Serial Port” 里选中 “Output to named pipe”

5.”next”,然后如下设置:

6.确定之后,回到如下界面,在右脚”Virtual Machine Settings” 页面时,在“I/O Mode” 里选中“Yield CPU on poll“

7. Ok之后就设定完毕了。

三、Windbg设置

安装之后,设置一个桌面快捷方式,然后,右键->属性,在Target中的引号后面添加如下:

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

(一)VMware+Windbg+Win7 内核驱动调试 ----(环境搭建) - 3792615 - 独一飞的博客

-b:初始断点   -k:内核调试 com:port:命名管道 baud:波特率    pipe:管道
  
       四、虚拟机OS设置

1、在 bootmgr 中下断点
          在 vista 及后续的 windows 已经取消了 ntldr 模块管理引导,转而以 bootmgr 模块管理引导系统。

  在我的 windows 7中要设定在哪个部分进行调试。

  windws 7 可调试部分有 4 个:bootmgr 模块、winload 模块、WinResume 模块以及 windows 内核模块 Nt 模块

 可以在上述的 4 个模块下断点进行调式
        (1) 以管理员身份运行“命令提示符”

(2) 在“命令提示符”窗口中,输入以下命令:

bcdedit /set {bootmgr} bootdebug on
        bcdedit /set {bootmgr} debugtype serial
        bcdedit /set {bootmgr} debugport 1
        bcdedit /set {bootmgr} baudrate 115200

 

注意一个细节,bcdedit /set {bootmgr} debugport 1这一行最后的1 对应Serial Port 1,

所以如果是Serial Port 2 则设置为bcdedit /set {bootmgr} debugport 2 ,否则连不上。

 

在提示命令成功后,这样就在 windows7 中的 bootmgr 模块建立起可调试的机制。
在运行 windows7 时到达 bootmgr 时就停止加载,vmware 中是黑屏,它正等待 serial port 的响应,
运行 windbg 后,windbg 就和 windws 7 中的 bootmgr 建立起联线了

 

下面是我的 windbg 在 bootmgr 模式下断点的响应信息:

WARNING: Whitespace at start of path element
Waiting to reconnect...
BD: Boot Debugger Initialized
Connected to Windows Boot Debugger 7601 x86 compatible target at (Thu Jul 24 09:12:47.771 2014 (UTC + 8:00)), ptr64 FALSE
Kernel Debugger connection established.  (Initial Breakpoint requested)
WARNING: Whitespace at start of path element
Symbol search path is: e:\localsymbols; SRV*e:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is: 
Windows Boot Debugger Kernel Version 7601 UP Free x86 compatible
Machine Name:
Primary image base = 0x00400000 Loaded module list = 0x00491b80
System Uptime: not available
WARNING: Whitespace at start of path element
Break instruction exception - code 80000003 (first chance)
bootmgr!RtlpBreakWithStatusInstruction:
00443914 cc              int     3

 

2、在 winload 模块下断点
同样在“命令提示符”中使用命令

bcdedit /enum

这条命令显示当前可用模块的 GUID

(一)VMware+Windbg+Win7 内核驱动调试 ----(环境搭建) - 3792615 - 独一飞的博客
 

3、在内核模块 Nt 模块下断点 
         WIN+R 打开运行输入msconfig打开启动配置对话框设置调试,请按照图片设置

         

        

       至此虚拟机中的操作系统也设置好了,重启后生效。

 五.测试WinDbg+VMware是否连接成功

    先打开虚拟机操作系统,然后启动WinDbg,出现下列信息则说明连接成功,此时虚拟机系统会停止(可能是黑屏),WinDbg会在系统启动上自动下int 3,这时按F5或键入g回车,系统即可正常启动

    

 

     至此WinDbg+VMWare+Win7 调试配置就已设置完成。

博客参考:http://blog.csdn.net/iceamber2012/article/details/17963649

0 0
原创粉丝点击