Windows内核调试实验方法

如果需要通过实验来了解windows操作系统,免不了要进行内核调试,这边文章把一些内核调试途径和方法罗列下。

实验环境

Windows 8 Enterprise+ Hypher V

VM - 2003 SP2

VM - 2008 R2

工具使用

实验用到的工具主要是调试工具windbg,进行内核级的调试,如何向查看系统内核的情况,一般有四种方式,

WindbgLocal Debug,需要更改机器启动设置,重启机器。

LiveDebug,需要准备两台机器,从一台通过调试工具连接到目标机器来调试目标机器。

LiveKD,可以帮助我们在本机或者VM上面直接调试。

KernelDump,通过抓取内核Dump来查看内存状态。

Windbg的安装方法

Windbg的安装包包含在windows WDKSDK中,在安装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-VVM虚拟机,通过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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值