设为首页 收藏本站
查看: 1203|回复: 0

[经验分享] Windows内核调试实验方法

[复制链接]

尚未签到

发表于 2016-5-20 09:40:02 | 显示全部楼层 |阅读模式
如果需要通过实验来了解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的过程中选择DebugTool For Windows选项,SDK会安装Windbg。
WindowsSDK下载
http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx
DSC0000.png

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来实现,只是在特殊的查询可能要通过抓KernelDump的形式来演示,(因为LiveKD不能访问硬件,所以硬件相关的命令在LiveKD中得不到返回结果)。

LiveKD下载
http://technet.microsoft.com/en-us/sysinternals/bb897415.aspx
如果你的Windbg安装目录为默认目录的话,LiveKD可以自动找到相应的路径,否则的话你需要将LiveKD拷贝到Windbg的安装目录下。

Local machine
本机调试直接通过管理员权限运行命令行,转到LiveKD所在的目录,运行LiveKD。
DSC0001.png

Virtual machine
LiveKD也可以直接调试Hypher-V的VM虚拟机,通过LiveKD加参数-hvl列出所有的Hypher-V虚拟机名和Guid,然后选择要调试的虚拟机执行LiveKD加参数-hv后面接虚拟机名或Guid来启动调试。
DSC0002.png

Kernel Dump的方法

抓内核dump的方式很多,dump也有三种类型可供选择,
Small Memory Dump
Kernel Memory Dump
Complete Memory Dump

先来进行一些通用的配置。
确定抓取dump的类型,一般我实验只是演示查看,可以选择自动的方式。

DSC0003.png
  确定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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-219412-1-1.html 上篇帖子: Java执行Windows命令 下篇帖子: Windows 瘦身借存
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表