【转】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就行了。

posted on 2011-12-01 08:52 Neddy11 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/Neddy/archive/2011/12/01/2269978.html

【转】VMWare+WinDbg搭建(驱动)调试环境相关推荐

  1. macos 环境下搭建 windbg 虚拟机双机调试环境

    「求职」阿哈哈哈广告来了,博主本人,23届落魄web安全,在线求职,本科学历有一段大厂实习,有缺人的大佬么或者有内推的大佬给个机会吧,求求啦,可以微信联系我给您简历:ocean888-_- 文章底下有 ...

  2. 使用WinDbg搭建edk2 DEBUG环境

    1 使用WinDbg搭建edk2 DEBUG环境 相信所有开发UEFI的小伙伴在刚接触UEFI的时候肯定都是一头雾水,等到稍微入门了一点之后,当我们想开发一个新功能的时候碰到了一些奇奇怪怪的错误想要去 ...

  3. Windows下搭建PHP调试环境(phpstudy+VScode)

    Windows下搭建PHP调试环境(phpstudy+VScode) 0x00 问题背景 0x01 配套环境 0x02 php Xdebug简介 官方介绍: Xdebug扩展启用 0x03 php.i ...

  4. Visual Studio Code搭建PHP调试环境

    使用Visual Studio Code搭建PHP调试环境 一.需要安装的软件 Visual Studio Code安装可以参照博文: https://blog.csdn.net/qq_3419550 ...

  5. UEFI开发探索28 – 用Windbg建立UEFI调试环境

    (请保留-> 作者: 罗冰   https://blog.csdn.net/luobing4365) 最近的翻译计划和博客计划严重滞后.一方面是因为有两个案子在推进,业余时间也被占用:另外一方面 ...

  6. 【UEFI基础】用Windbg建立UEFI调试环境

    1 经验教训 我参考的文档主要来自UDK Debugger Tool的说明书,以及网上有位同行分享的博客.网址分别为: https://firmware.intel.com/develop/intel ...

  7. Dynamips与VMware配合搭建网络实验环境

    之前我们已经利用Dynamips成功模拟了Cisco 3640路由器,并使用其VPC功能简单模拟了几台接入该路由器16×××换机模块的终端.但VPC模拟的终端与实际机器还是有很大差别,因此打算结合VM ...

  8. sublime python 断点测试_使用Sublime Text搭建python调试环境

    pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 2. ...

  9. 利用docker搭建php调试环境(phpstorm+xdebug)

    前言 最近审计php代码发现手动打印变量实在是太累了,不能快速的了解目标应用程序的运行逻辑.还是决定转战xdebug,下面是一些简单的记录-真香 docker环境获取 为什么用docker来搭建调试环 ...

最新文章

  1. 华为云中文预训练模型发布:全球最大、千亿参数,逼近人类神经元
  2. node的包管理工具:yarn和npm
  3. AI公开课:19.04.18俞益洲—深睿医疗CS《计算机视觉的应用与落地》课堂笔记以及个人感悟
  4. JWT对称加密非对称加密
  5. mysql 分段执行_面试官问你MySQL的优化,看这篇文章就够了
  6. 无法解析类型 java.lang.Object。从必需的 .class 文件间接引用了它
  7. yiilite.php,YII Framework学习教程-YII的V-view的render若干函数-2011-11-17 | 学步园
  8. 带有Python示例的math.exp()方法
  9. mysql如何实现树状结构_实现树状结构的两种方法
  10. OpenVINO+OpenCV 文本检测与识别
  11. C++随记总结(1)----关于C++中的大小端、位段(惑位域)和内存对齐
  12. NLP先验知识(一)
  13. 嗅探辅助利器-幻影网盾原理
  14. 算法:Jump Game
  15. java 高级工程师面试题集锦,持续更新~
  16. 【LINUX C 写文件】
  17. linux rz命令安装
  18. ns3学习之ns3模拟基本流程
  19. h5 bootstrap 小程序模板_教你获取小程序码或小程序H5页面路径
  20. 纵横算法之四:算法应该怎么学

热门文章

  1. 轨道交通车载设备军工电磁兼容试验-可靠性测试机构
  2. linux tar解压压缩,linux下压缩解压tar 详解
  3. 【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型
  4. 哀思著名力学家钱伟长先生
  5. 基础会计学知识点汇总
  6. 《考研数据结构》复习讲义 全网最全~
  7. weinre调试工具
  8. MPU6500功能说明
  9. java代码条形码链接网址_Java在PDF中添加条形码
  10. Arduino UNO的原理图