如果需要通过实验来了解windows操作系统,免不了要进行内核调试,这边文章把一些内核调试途径和方法罗列下。
实验环境
Windows 8 Enterprise+ Hypher V
VM - 2003 SP2
VM - 2008 R2
工具使用
实验用到的工具主要是调试工具windbg,进行内核级的调试,如何向查看系统内核的情况,一般有四种方式,
WindbgLocal Debug,需要更改机器启动设置,重启机器。
LiveDebug,需要准备两台机器,从一台通过调试工具连接到目标机器来调试目标机器。
LiveKD,可以帮助我们在本机或者VM上面直接调试。
KernelDump,通过抓取内核Dump来查看内存状态。
Windbg的安装方法
Windbg的安装包包含在windows WDK或SDK中,在安装SDK的过程中选择Debug
Tool For Windows选项,SDK会安装Windbg。
WindowsSDK下载
http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx
Symbol的配置
Windbg安装成功后,非常关键的一步是配置Symbol(符号表)缓存和网络地址,默认的路径为
SRV*your local symbolfolder*http://msdl.microsoft.com/download/symbols
需要设置用户环境变量
_NT_SYMBOL_PATH =SRV*your local folder for symbols*http://msdl.microsoft.com/download/symbols
Windbg Local Debug
管理员启动命令行
Bcdedit /debug ON
管理员启动windbg
选择File - Kernel Debug - Local
LiveKD的使用方法
LiveKD允许我们不需要另外一台物理机就可以进行内核调试,所以我实验的过程中大多数时候都会用LiveKD来实现,只是在特殊的查询可能要通过抓Kernel
Dump的形式来演示,(因为LiveKD不能访问硬件,所以硬件相关的命令在LiveKD中得不到返回结果)。
LiveKD下载
http://technet.microsoft.com/en-us/sysinternals/bb897415.aspx
如果你的Windbg安装目录为默认目录的话,LiveKD可以自动找到相应的路径,否则的话你需要将LiveKD拷贝到Windbg的安装目录下。
Local machine
本机调试直接通过管理员权限运行命令行,转到LiveKD所在的目录,运行LiveKD。
Virtual machine
LiveKD也可以直接调试Hypher-V的VM虚拟机,通过LiveKD加参数-hvl列出所有的Hypher-V虚拟机名和Guid,然后选择要调试的虚拟机执行LiveKD加参数-hv后面接虚拟机名或Guid来启动调试。
抓Kernel Dump的方法
抓内核dump的方式很多,dump也有三种类型可供选择,
Small Memory Dump
Kernel Memory Dump
Complete Memory Dump
先来进行一些通用的配置。
确定抓取dump的类型,一般我实验只是演示查看,可以选择自动的方式。
确定dump文件写入的路径有足够的硬盘空间,dump的大小取决于dump的类型与内存使用量,如果选择自动的话你需要保证有比内存大小大的硬盘空间。
NotMyFault
这是最简单的方式,通过软件触发中断来生成dump文件。
下载NotMyFault工具http://download.sysinternals.com/files/NotMyFault.zip
运行命令行转到NotMyFault所在的路径下,运行命令NotMyFault.exe /crash
系统蓝屏,重启,dump就生成在你配置的路径下。默认为c:\windows\memory.dmp
键盘中断
如果你用ps/2键盘,修改注册表
找到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters
添加以下注册表项:
Name :CrashOnCtrlScroll
Data Type: REG_DWORD
Value :1
如果使用 USB 键盘,必须创建 CrashOnCtrlScroll 注册表项。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\kbdhid\Parameters
添加以下注册表项:
Name :CrashOnCtrlScroll
Data Type: REG_DWORD
Value :1
接下来,按住右边ctrl键并且同时按两次scrolllock键,系统蓝屏重启,dump生成在配置目录下。
其他方式
http://support.microsoft.com/kb/972110/zh-cn
参考文档
http://msdn.microsoft.com/en-us/library/windows/hardware/ff553382(v=vs.85).aspx
http://support.microsoft.com/kb/311503
http://support.microsoft.com/kb/972110
http://support.microsoft.com/kb/969028
http://blogs.technet.com/b/markrussinovich/archive/2010/10/14/3360991.aspx
分享到:
相关推荐
Wince 内核调试实验 ,进行Windows CE内核调试.完整的实验步骤,呵呵,提供有需求的人员。
windbg环境配置以及调试试验,结果。手把手教你设置Windbg
内核调试、用户态调试、JIT调试、远程调试的原理、实现和用法;异常的概念、渊源、分发方法、处理方法(SEH、VEH、C++)、编译方法和与调试相关的若干问题;调试符号的作用、产生过程、使用方法和对常用类型的调试...
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,而且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,是一本值得推荐的...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看 Windows的网络...
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,而且介绍了编程技 巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义 ,是一本值得...
2.探索内部系统的数据结构,使用内核调试工具 3.在Windows安全模式里面去看看它是如何授权数据的访问 4.了解Windows如何管理物理和虚拟内存 5.从上到下参观Windows网络堆栈 6.文件系统访问的问题和系统引导问题的...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,而且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,是一本值得推荐的...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...
" "(3)EOS内核项目的生成和调试 : 对EOS内核项目的各种操作(包括新建、生成和 " "各种调试功能等)与对Windows控制台项目的操作是完全一致的; " "(4)EOS应用程序项目的生成和调试; " "(5)退出OS Lab 。 ...
" "(3)EOS内核项目的生成和调试 : 对EOS内核项目的各种操作(包括新建、生成和 " "各种调试功能等)与对Windows控制台项目的操作是完全一致的; " "(4)EOS应用程序项目的生成和调试; " "(5)退出OS Lab 。 ...
内含如下文档: WinDbg 基础知识.chm WinDbg 内核调试指南.pdf WinDbg 资料整理 windbg经典中文教程(WINDOWS用户态内核调试必读) .pdf windbg试验.doc
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,并且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,适用于中、高级...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...
本书是作者结合教学和科研实践经验编写而成的,不仅详细介绍了Windows内核原理,并且介绍了编程技巧和应用实例,兼顾了在校研究生和工程技术人员的实际需求,对教学、生产和科研有现实的指导意义,适用于中、高级...
《深入解析Windows操作系统:第6版(上册)》是著名的操作系统内核专家Mark Russinovich和David Solomon、Allen Ionescu撰写的关于Windows操作系统原理的最新版著作,全面深入地阐述了Windows操作系统的整体结构及...
利用内核调试器和其他的工具来检查内部系统结构;检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈...