- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1. 使用 bochs+vmware+windbg 分析调试 windows 7 内核
用 google 可以搜出很多“如何使用 windbg 调试 windows 内核的”的教程。基本都差不多
我根据搜出的教程,再总结一下将自己实验过程写出来。
★ 我的 vmware 版本是: 6.0.4 build-93057★ windbg 版本是:6.11.0001.402 AMD64★ bochs 版本是:2.4.2★ 目标 windows 7 版本是:windows 7 ultimate x64 中文版
------------------------------------------------------------------------------------------------------- 使用 vmware + windbg 就可以调试 windows 内核了,但是我喜欢还开上 bochs ,使用 bochs 很方便灵活。
vmware 里的 guest OS 作为被调试对象,Host OS 里使用 windbg 作为调试者。
guest OS 和 Host OS 通过 serial port 以 named pipe 方式作为联线。一、在我的 vmware 上装上了最新的 windows 7 x64 中文旗舰版
bochs 也装上了同样的 windows 7 x64 中文旗舰版。1、vmware 的设置 打开相应 vmware 虚拟机上的 “Virtaul Machine Settings”--- “Hardware”选项中 ---- 点击 “Add” 添加一个串口设备 Seiall Port ---- “Next” ---- 在 Serial Port 里选中“Output to named pipe” ---- “next” ---- “Finish”
最后,回到 “Virtual Machine Settings”页面时,在“I/O Mode” 里选中“Yield CPU on poll” 这样 vmware 的设置就好了。
2、windbg 的使用
在桌面上建一个便捷方式,命令行是:
C:\Program Files\Debugging Tools for Windows 64-bit\windbg.exe -b -k com:port=\\.\pipe\com_1,baud=115200,pipe
这样在开启 vmware 中的 windows 7 后运行这个便捷方式,windbg 与 guest OS “win7” 就建立成联线方式。
二、guest OS - win7 中设定1、在 bootmgr 中下断点 在 vista 及后续的 windows 已经取消了 ntldr 模块管理引导,转而以 bootmgr 模块管理引导系统。
在我的 windows 7中要设定在哪个部分进行调试。
windws 7 可调试部分有 4 个:bootmgr 模块、winload 模块、WinResume 模块以及 windows 内核模块 Nt 模块
可以在上述的 4 个模块下断点进行调式
例:在 bootmgr 下断点的话,可使用以下命令进行:(1) 以管理员身份运行“命令提示符”
(2) 在“命令提示符”窗口中,输入以下命令:
bcdedit /set {bootmgr} bootdebug onbcdedit /set {bootmgr} debugtype serialbcdedit /set {bootmgr} debugport 1bcdedit /set {bootmgr} baudrate 115200 在提示命令成功后,这样就在 windows7 中的 bootmgr 模块建立起可调试的机制。在运行 windows7 时到达 bootmgr 时就停止加载,vmware 中是黑屏,它正等待 serial port 的响应,运行 windbg 后,windbg 就和 windws 7 中的 bootmgr 建立起联线了
下面是我的 windbg 在 bootmgr 模式下断点的响应信息:
Microsoft (R) Windows Debugger Version 6.11.0001.402 AMD64Copyright (c) Microsoft Corporation. All rights reserved.
Opened \\.\pipe\com_1Waiting to reconnect...BD: Boot Debugger InitializedConnected to Windows Bo
文档评论(0)