本文为在学习过程中的笔记,写的不好请见谅.
在调试内核驱动程序时,驱动程序被操作系统加载.而操作系统无法自己调试自己.所以要用一台计算机调试另一台计算机的操作系统,进而调试内核驱动.
使用windbg对虚拟机中的操作系统进行调试之前,要先配置windbg和虚拟机,这里用的windbg为WDK7.1中自带的.
虚拟机配置
安装好虚拟机后,打开虚拟机界面,点击编辑虚拟机设置
点击添加
选择串行端口,点击下一步
选择输出到命名管道,点击下一步
这里的名称可以修改,但如果不了解不建议修改,直接点击完成
此时在虚拟机设置中,会多出刚才添加的串行端口,说明添加成功
打开VM中的操作系统,打开我的电脑,点击工具,文件夹选项
设置不隐藏受保护的系统文件,并显示所有隐藏文件和文件夹,点击确定
在C盘根目录中,右键boot文件,属性,去掉只读,点击确定
打开boot文件,复制
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Microsoft Windows XP Professional Debug” /noexecute=optin /fastdetect /noexecute=alwaysoff /debug /debugport=com /baudrate=115200
到boot文件中
这里要注意:/debugport=com这条设置,如果你的WDK是7.1以下版本,请设置为/debugport=com1或者/debugport=com_1,反正不同版本这个/debugport的值设置不一样,如果不能连接,请把每一个都试遍,这里我用的是官方的7.1,经过测试这里要设置为/debugport=com才能正常连接.
保存后关闭文件,重新启动虚拟机中的xp系统,此时在启动界面会多出一个启动项
到此虚拟接设置完成,下面开始windbg设置
windgb配置
首先将windbg的安装目录配置到环境变量中
这里我的操作系统是win7,计算机-属性-高级系统设置-高级-环境变量-Path-编辑
在最后加入windgb的安装目录,点击确定
新建一个环境变量
变量名: _NT_SYMBOL_PATH
变量值:SRV*d:\symbol*http://msdl.microsoft.com/download/symbols
其中d:\symbol为符号下载的目录,请自行设置
新建一个windbg快捷方式,右键点击windbg快捷方式-属性,在目标栏最后添加以下命令行参数
-b -k com:port=//./pipe/com_1,baud=115200,pipe
windbg配置完成.
打开虚拟机,在启动项时选择,启动调试程序.之后打开刚才新建的windbg快捷方式.
此时,可以看到windbg中已经触发int 3断点.输入g命令,虚拟机中的xp系统则开始运行