参考:
WinDBG+VMware=调试内核
VMWare+WinDbg搭建(驱动)调试环境
今天搭建了一个“VMWare+Windbg的虚拟机双机内核调试环境”,第一次感受到了“符号和源码调试”的强大之处和其魅力所在。不过感觉就是操作有些麻烦,双机调试时速度不够快,而且老是出问题(可能与VMware有关系)。Windbg的一个显著不足之处在于,一旦没有了符号或者源码,那它的功能就显得捉襟见肘了,因此个人感觉不太适合做逆向工程,做项目调试和驱动级调试还是蛮不错的。目前我还不能很好地驾驭它,慢慢求索中……
符号表下载地址: http://msdl.microsoft.com/download/symbols/packages/windowsxp/WindowsXP-KB835935-SP2-slp-Symbols.exe
WinDbg下载地址: http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.5.3.8.exe
安装完上述两个程序后,设置一下环境变量:右击“我的电脑”打开“系统属性”,在“高级”页面中打开“环境变量(N)”,在下面的“系统变量(S)”里新建一项:
变量名 :_NT_SYMBOL_PATH
变量值 :SRV*c:\windows\symbols*http://msdl.microsoft.com/download/symbols
设置这个环境变量的好处是,以后WinDbg就会使用这个路径作为符号表路径了。
安装VMWare虚拟机,并在虚拟机里安装操作系统,如WinXP SP2。安装完成后修改boot.ini 文件。在里面[operating systems] 节中加入一行,
" multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WIN XP Debug" /fastdetect /debug /debugport=com1 /baudrate=115200 "
另外建议将[boot loader] 节下的timeout 修改为一个较大的值,这样倒计时会比较长我们能有足够的时间来选择系统加载菜单。
随后关闭系统配置虚拟机的硬件,点击 "Edit virtual machine settings" ,添加一个Serial Port ,选择"Output to named pipe", 然后下一步;
第一框里保持默认的 " \\.\pipe\com_1 "
第二框里选"This end is the server."
第三框里选"The other end is an application."
选中 "Connect at power on"
然后点击 "Advanced>>" 然后在新窗口中选中 "Yield CPU on poll", 保存退出。
在真实系统中查看"设备管理器", 在端口里找到Com1 ,然后再属性页中的“端口设置” 修改速率为115200 。
为使方便,在WinDbg的快捷方式 属性中的“目标(T)” 栏里输入:
"C:\Program Files\Debugging Tools for Windows\windbg.exe" -y C:\Windows\Symbols\ -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
这里面-y 后面的路径就是前面安装的符号表路径 。
使用时,首先运行虚拟机系统,到bootloader选择进入哪个系统的时候,按下上下方向键倒计时就会停止。然后再到真实系统中运行刚才创建的WinDbg快捷方式,运行完成后再在虚拟系统中选择带有调试标志的系统即可。此时回到真实系统,稍等一会就可以看到WinDbg输出信息告诉我们两个系统已经连接上了,剩下的事情就是调试了。
当windbg连接上后请按Ctrl+Break中断,输入命令:bu DriverName!DriverEntry (大小写不限),代表下了一个不确定的断点。然后F5(或者输入G命令)让windbg跑起来。
在虚拟机中使用三方工具(例如:InstDrv)加载你的驱动文件并启动,那么该驱动文件的入口函数DriverEntry 便会被调用。由于刚才下好了断点,因此windbg便中断在了该函数的入口。
而且是源码级的哦~很是方便。
可能出现的问题:
最近使用vmware7.1.2的版本发现创建的串口名为:“Serial Port 2”,使用上述方法后windbg老是连接不上。最后需要设置把上述方法中出现com1,com_1的分别改为com2,com_2就行了。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com