返回首页
专题
网络编程
ASPjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 .NETjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 PHPjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 JSPjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 C#jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Delphijrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 VBjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 C/C++jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Android开发 IOS开发 Windows Phone开发 Pythonjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Rubyjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 移动开发 其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播
网页制作
HTMLjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 CSSjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Dreamweaverjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 FrontPagesjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Javascriptjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 web前端
数据库
SqlServer MySql Oracle Access DB2 SQLite 其他数据库
图形设计
photoshopjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Fireworksjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 CorelDrawjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Illustratorjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 AutoCadjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 FLASHjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播
操作系统
Windows xpjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Windows 7jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Windows 8jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Windows 2003jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Windows Server 2008jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Linuxjrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 Windows 10
网站运营
建站经验 SEO优化 站长心得 网赚技巧 网站推广 站长故事
手机学院
手机速递 安卓jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 iphonejrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播 手机评测 手机技巧 手机知识 手机应用 手机游戏 手机导购
网店宝典
开店指导 开店经验 网店装修 网店推广 网店seo 网购技巧
软件jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播
办公软件 系统工具 媒体工具 压缩工具 图文处理 文件管理
范文之家
自我介绍 自我鉴定 写作模板 合同范本 工作总结 贺词祝福语 演讲致辞 思想汇报 入党申请书 实习报告 心得体会 工作计划 简历模板 工作报告 导游词 评语寄语 口号大全 策划书范文
信息工程
软件工程 企业开发 系统运维 软件测试
移民之家
移民动态 移民政策 移民百科 移民生活 技术移民 投资移民
知识大全
母婴 数码 摄影 装修 美文 常识 时尚 婚嫁 美食 养生 旅游 兴趣 职场 教育 文学 健康
问答大全
电脑网络 手机数码 QQ专区 生活 游戏 体育运动 娱乐明星 休闲爱好 文化艺术 社会民生 教育科学 健康医疗 商业理财 情感家庭 地区问题 其他
编程问答
IOS Android .NET Java C/C++ Delphi VC/MFC 其他语言 PHP MSSQL MYSQL Oracle 其他数据库 Web开发 Windows Linux 硬件/嵌入开发 网络通信 移动开发 云计算 企业IT 游戏开发
笑话大全
幽默笑话 爱情笑话 成人笑话 校园笑话 爆笑笑话 综合笑话 古代笑话 现代笑话 国外笑话

Windows Kernel Way 1:Windows内核调试技术

来源:互联网  时间:2014/12/21 8:34:43

掌握Windows内核调试技术是学习与研究Windows内核的基础,调试Windows内核的方式大致分为两种:

(1)通过Windbg工具在Windows系统运行之初连接到Windows内核,连接成功之后便可以调试,此时即可以调试Windows内核启动过程,又可以在Windows启动之后调试某内核组件或应用程序。或使用Windbg的Kernel debugging of the local mechine功能,在Windows系统完全启动之后,调试Windows内核组件或应用程序。这种方式需要配置Windows系统以DEBUG模式启动。

(2)通过Bochs来运行Windows系统,可以在Windows运行的任意时刻调试任意信息,但最大的缺点就是,这种方式目前不支持使用Windows Symbols,与第一种方式相比,汇编代码读起来并不直观。

本文介绍方式(1)即通过Windbg工具调试Windows内核。

1、Windbg工具简介及获取方式

Windbg工具是微软团队开发和公布的一款专门用于调试Windows内核及应用程序的调试器,既支持内核级(Ring0)调试,也支持应用程序级(Ring3)调试。如今的Windows系统调试器有多种,出了Windbg以外,还有Olldbg、Immunity Debugger等。Olldbg和Immunity Debugger不支持内核级调试。

Windbg工具包含在Windows Driver Kit(WDK,Windows驱动开发包)中,当然也可以单独下载。

(1)如果要通过WDK方式获取的话,Windows XP及之前的环境只要下载WDK即可,整个资源大约300M~500M,但是在Windows Vista/Windows 7等系统之后,微软将WDK与Visual Studio环境集成到一起,因此整个下载资源大约6.0G~7.0G。由于Windows XP系统不再支持,并且笔者的实验环境为Windows 7系统,在后续的文章中也会涉及到Windows驱动开发,所以笔者建议下载WDK与VS集成包,虽然资源比较大。

(2)如果只是暂时学习Windows内核调试的话,可以单独下载Windbg工具,整个资源大约150M。

以上资源皆可以在MSDN上获取,获取链接为:http://msdn.microsoft.com/zh-cn/windows/hardware/hh852365.aspx

2、Windows Symbols简介及获取方式

Windows Symbols是微软公开的Windows系统符号表,使用Windbg调试WIndows内核和应用程序时可以很直观地看到部分变量名称、结构体结构、函数名称等。

Windows Symbols可以直接在MSDN上获取,其获取页面与上述给出的获取Windbg工具的页面链接相同。

但是笔者不建议直接下载并安装Windows Symbols,因为在使用Windbg工具调试时,可以根据需要即时获取相关模块的符号信息(如果网络正常的话)。

3、Windows内核调试方法

通过虚拟机调试Windows系统是种常见的方式,即首先搭建虚拟机环境,即将Windows系统安装在虚拟机中,然后配置虚拟机Windows系统的启动模式为DEBUG模式,并且配置好Windbg工具与虚拟机Windows系统之间的通信通道,在Windbg进入等待调试通信的时候,重启虚拟机Windows系统,双方的调试链接建立以后,即可使用Windbg工具调试/控制Windows内核,详细步骤如下:

(1)配置虚拟机Windows系统以DEBUG模式启动。

进入虚拟机Windows系统,以管理员身份运行cmd.exe,执行以下命令:

bcdedit /debug on    //启用Windows内核调试支持

bcdedit /bootdebug on  //启用应用程序的启动过程调试支持

关于bcdedit命令的详细信息,可以在MSDN中了解:http://msdn.microsoft.com/zh-cn/library/dn653986(v=vs.85).aspx

上述方式仅在Windows Vista/7系统及以后版本的Windows系统中有效,如不做特殊说明,笔者的实验环境默认为VirtualBox/Windows 7系统。

对于Windows XP系统的配置,请自行GOOGLE。

(2)配置Windbg与虚拟机Windows系统的调试通信通道。

关闭虚拟机Windows系统,在虚拟机“串口配置”中,启用某个串口,比如COM1,并将该串口的端口模式设置为“主机管道”,并选择“创建通道”,在“端口/文件位置”中输入待创建的虚拟的管道设备名称,比如“\\.\pipe\comdbg”(注意格式,“comdbg”名称用户自定义):

打开Windbg,在“Kernel Debug”(Ctrl+K)对话框的“COM”标签页中将“Port”也配置为“\\.\pipe\comdbg”:

点击确定后,Windbg进入尝试与目标建立通信通道状态:

此时启动虚拟机的Windows系统,一段时间以后,调式通信通道建立成功:

此时,在Windbg中按快捷键“Ctrl+Break”即可中断虚拟机Windows的启动/运行过程(第一次一般会下载符号表,需要耐心等待):

此时便可以输入各种调试指令,比如输入“g”命令就可以继续虚拟机Windows的运行过程。

由于Windbg的内核调试指令与Windows内核原理相关,所以在后面的Windows内核原理分析时会详细说明Windbg使用及相关指令。


上一篇电脑开启FTP站点
下一篇最新32位和64位xp,win7,win8,win10系统大全(电脑装机版)
明星图片
相关文章
《Windows Kernel Way 1:Windows内核调试技术》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)