设为首页 收藏本站
查看: 608|回复: 0

[经验分享] VMWare+WinDbg搭建(驱动)调试环境

[复制链接]

尚未签到

发表于 2015-4-5 08:02:49 | 显示全部楼层 |阅读模式
  参考:
  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

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-53947-1-1.html 上篇帖子: VMware Server在Linux4上安装 OracleRAC10G 下篇帖子: 找不到hgfs共享文件,安装VMware tools
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表