【旧文章搬运】Windbg+Vmware驱动调试入门(二)---Vmware及GuestOS的设置
原文发表于百度空间,2009-01-08
==========================================================================
这一篇是主要是关于Vmware部分的设置,其实参考JIURL那篇很经典的《借助VMware实现单机使用WinDbg》就可以了.不过那篇文章里面有个小错误(不知道是原作者不小心,还是别人转载的时候错了),后面的波特率应为115200而非11520
我就再来写一下吧,内容基本雷同,稍微精简一些
Vmware的相关设置
1.编辑Vmware设置,添加一个串口设备.
首先我们要添加一个串口设备.打开你的虚拟机,选择“编辑虚拟机设置”

然后"Add...(添加)"->"Serial Port(串口)"->"Output to named pipe(输出到命名管道)"一路Next
名称就用默认的"",这个其实对应于你的串口名称com1,用别的名字当然也可以,不过后面要对应
第二行选择"This end is the server"
第三行选择"The other end is an application"
同时把下面的"Connect at power on(打开电源时连接)"
请见下图:

好了,这回串口设备有了.下面进行相关设置
2.设置串口波特率
启动虚拟机中的OS,进入系统,打开设备管理器选项,这时就看到刚才添加的串口com1了
双击com1设备进入属性设置,在"端口设置"选项卡中选择"每秒位数"也就是波特率为115200
(据说Windbg可以自动适应波特率,没尝试过,因此还是设置一下吧)

3.修改boot.ini(如果是Vista以上就不是修改boot.ini了,需要别的修改方式,请看第5点)
这一步准确讲是添加DEBUG启动模式,对于Win2003及以前的系统,可以通过修改boot.ini来实现
对于Vista,Server2008,Win7等就得用bcdedit来编辑启动设置了
有需要的可以搜索"Windbg内核调试之一 Vista Boot Config设置"来查找那篇文章
我的GuestOS是WinXP Sp2,所以采用boot.ini的方法
打开C盘,把隐藏文件显示出来,去掉boot.ini的只读属性,双击打开来
通常你只会看到一个启动选项,我们复制一个,在后面加上 /debug /debugport=com1 /baudrate=115200
注意修改时间timeout,不要为0或太短,否则你连选择的机会都没有~~
贴个图,不会就照图中来,红线框住的部分是新加的
如果你不愿新增加,直接编辑原来那个也可以,不过还是推荐新加一个好~

然后你可以往虚拟机中放一些测试驱动常用的工具,比如DebugView,InstDrv等等
这时关于虚拟机部分就设置完成了,可以把当前状态保存一个快照,以后如果哪个驱动把系统搞崩溃再也起不来了,恢复一下就OK了
4.建立双机调试快捷方式
在桌面建立一个Windbg的快捷方式命名为“双机调试”,然后编辑其属性,把“目标”后面加上
-k com:port=\\.\pipe\com_1,baud=115200,pipe
比如我的电脑上,完整的应该是这个样子:
"C:\Program Files\Debugging Tools for Windows (x86)\windbg.exe" -k com:port=\\.\pipe\com_1,baud=115200,pipe

好了,一切设置就绪,来体验一下~~
重新启动虚拟机中的系统,在启动菜单时选择有“启用调试程序”的那一项,回车确认

然后把虚拟机最小化,回到桌面双击刚才建好的“双机调试”快捷方式,如果没有什么意外的话,稍等一下就会看到:
Connected to Windows XP 2600 x86 compatible target,ptr64 FALSE
Kernel Debugger connection established.
这就表示已经连接成功了,接下来会显示一下符号路径,内核基址等信息。
此时按下Ctrl+Break,就会中断下来,命令输入窗口变为可用状态,可以输入各种命令了~~
如果需要进入系统之后才加载驱动的话,可以等系统启动完毕后再中断,输入断点命令.这取决于你驱动的加载时机
5.Vista以上系统的设置方式
Vista以上系统的启动项管理不再使用boot.ini,而是使用BCD数据库,它的操作方式可以使用系统自带的bcdedit命令。
打开一个管理员权限的cmd窗口,依次执行以下命令:
bcdedit /copy {current} /d Win7Debug
该命令复制当前启动项并命令为Win7Debug,复制成功后,会提示新启动项的GUID
bcdedit /debug {29999672-9a09-11e7-bb18-b881985ed70f} on
该命令中的第2个参数就是新启动项的GUID,该命令将开启新启动项的调试功能
bcdedit /dbgsettings
该命令显示当前的调试设置,如果发现调试功能工作不正常,可以使用以下命令恢复到默认:
bcdedit /dbgsettings serial baudrate:115200 debugport:1

这一节到这儿,下一节Windbg的基本使用,马上就来...
【旧文章搬运】Windbg+Vmware驱动调试入门(二)---Vmware及GuestOS的设置的更多相关文章
- 【旧文章搬运】Windbg+Vmware驱动调试入门(一)---Windbg的设置
原文发表于百度空间,2009-01-08========================================================================== Windb ...
- 【旧文章搬运】Windbg+Vmware驱动调试入门(四)---VirtualKD内核调试加速工具
原文发表于百度空间,2009-01-09========================================================================== 今天又想起 ...
- 【旧文章搬运】Windbg+Vmware驱动调试入门(三)---Windbg基本调试入门
原文发表于百度空间,2009-01-09========================================================================== 这一节的内 ...
- 【旧文章搬运】Windows句柄分配算法(二)
原文发表于百度空间,2009-04-04========================================================================== 在创建句柄 ...
- 【旧文章搬运】加载PE文件时IAT的填充时机
原文发表于百度空间,2011-06-20========================================================================== 大致过程如 ...
- 【旧文章搬运】360安全卫士HookPort.sys完美逆向
原文发表于百度空间,2009-11-08 这是第一次逆向一个企业级安全产品的核心代码,并完美替换原驱动正常工作============================================= ...
- 【旧文章搬运】关于windbg搜索符号文件的一点说明
原文发表于百度空间,2010-09-07========================================================================== 本来只是打 ...
- 【旧文章搬运】无Device的驱动如何通信
原文发表于百度空间,2009-07-14========================================================================== 标准的驱动 ...
- 【旧文章搬运】Windows内核常见数据结构(驱动相关)
原文发表于百度空间,2008-7-24========================================================================== 这些是驱动中 ...
随机推荐
- 新建mvc项目
第一步 第二步 第三步,ok项目建好
- Tomcat服务器解析“GET /JavaWebDemo1/1.jsp HTTP/1.1”
(2)服务器收到http请求报文,返回http响应报文 Tomcat服务器解析“GET /JavaWebDemo1/1.jsp HTTP/1.1” Tomcat服务器解析“GET /JavaWebDe ...
- 从SOA到BFV【普元的一份广告文章】
人类对美好生活的追求是一切技术进步的原动力. 简便.快捷.联结……,这些移动互联的价值让它正成为最贴近消费者的力量.人和设备,设备和设备,人和服务,人和企业,企业和企业都发生了连接.诸如微信.携程.大 ...
- 彻底理解javascript 中的事件对象的pageY, clientY, screenY的区别和联系。
说到底, pageY, clientY, screenY的计算,就是要找到参考点, 它们的值就是: 鼠标点击的点----------- 和参考点指点----------的直角坐标系的距离 stacko ...
- springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
1.代码生成器: [正反双向](单表.主表.明细表.树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本.处理类.service等完整模块2. ...
- 转: 工欲善其事,必先利其器系列--Netbeans之远程开发
转自: http://www.cnblogs.com/zuoca/archive/2012/07/09/Remote_Development_With_Netbeans_origin.html 工欲善 ...
- Android安全机制介绍
Android的安全机制包含下面几个方面: • 进程沙箱隔离机制. • 应用程序签名机制. • 权限声明机制. • 訪问控制机制. • 进程通信机制. ...
- 【转载】读懂IL代码就这么简单 (一)
一前言 感谢 @冰麟轻武 指出文章的错误之处,现已更正 对于IL代码没了解之前总感觉很神奇,初一看完全不知所云,只听高手们说,了解IL代码你能更加清楚的知道你的代码是如何运行相互调用的,此言一出不明觉 ...
- C#高级编程六十九天----DLR简介 .在.NET中使用DLR(转载) 我也来说说Dynamic
DLR 一.近年来,在TIOBE公司每个月发布的编程语言排行榜中,C#总是能挤进前十名,而在最近十年来,C#总体上呈现上升的趋势.C#能取得这样的成绩,有很多因素,其中它在语言特性上的锐意进取让人印象 ...
- DirectX11 学习笔记5 - D3DXMath 库
directx11 特别推出了一个数学库 用于向量 矩阵的计算.并且使用128位 同一时候计算4条32位数据 (SIMD) 之前基本是用的directx10math.h这个头文件. 这个数学库既然是 ...