吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8196|回复: 7
收起左侧

[转载] Windbg-分析Windows蓝屏原因利器

   关闭 [复制链接]
Hmily 发表于 2009-8-17 11:02
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
先声明下,虽然用windbg诊断蓝屏之前网络上已经有人发过教程了,但就我而言,学会使用windbg来诊断蓝屏也算是自己的原创吧。以前看一个微软专家的视频(微软专家张银奎老师的《如何诊断和调试蓝屏错误》),专家提到可以用windbg来调试dump文件,当时我就想能不能只关注是什么文件导致的系统崩溃,然后对症下药。后来通过一系列的实验,自己摸索出了用windbg诊断蓝屏的方法,成功解决了包括KIS7.0插件、QQ插件、迅雷插件导致的蓝屏。废话就不多说了,本文没什么高深的技术,只是一些简单的操作,但应该可以让身陷蓝屏困扰中的朋友带来些变化,起码能让你知道是谁在捣乱!
  
   直观地说,蓝屏是系统崩溃。操作系统在遇到致命错误导致崩溃时,并不是直接挂掉,而是会记录下当时内存中的数据,将其存储成为dump文件,并用一串蓝屏代码向用户做出提示。
  
   好了,大家跟我一起设置吧。
  
   第一步,打开电脑的dump文件存储功能。在“我的电脑”上右键——属性——高级   




   选好后点确定,下次再出现蓝屏时,系统就会存储下dump文件,一般存放位置在系统盘的minidump文件夹下。(建议在该文件夹上点右键——属性——发送到——桌面快捷方式,以后就能在桌面上找到该文件夹了)

第二步,下载安装windbg
http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx#a
这个过程就不说了,随便选一个下载,安装时,一路“下一步”就行了。

第三步,使用windbg诊断蓝屏错误
   上面两步设好后,就想办法开始“制造”蓝屏吧,平时怎么用会出现蓝屏就拼命用直到出现蓝屏,嘿嘿。
  
   蓝屏后重启,在minidump文件夹下会出现一个以日期为文件名的东东,那就是我们要的了。接下来打开windbg,点屏幕左下的 “开始”,如下图:


软件启动点File——Open Crash Dump,如图:


然后找到你的minidump文件夹,dump文件一般是"时间.dmp"如图:



打开后就会自动分析了。分析完后,看最下面,找到3.probably caused by这一行,如图:

看,出来了吧那个myfault.sys文件就是罪魁祸首。

再补充点东西,

导入dump文件分析完毕后,不要关闭,在后面输入 !analyze -v ,这个命令可以查看dump文件的详细情况,如图:



对普通用户有用的还有下面一些信息:


第一行 DEFAULT_BUCKET_ID: 错误类型,这个懂点编程和操作系统知识的朋友用得上点
第三行 PROCESS_NAME: XXX.exe 这个是导致错误的进程,查出是什么文件导致的蓝屏后,再看这里就知道是谁调用了错误文件,比如你查出123.sys导致蓝屏,但你查不到123.sys是哪个程序调用的,就可以用这个方法来看看,比如查出了是456.exe,你就可以在机子上或者网上搜索相关信息了。


好了,到这里相信大家已经学会怎么找到导致系统蓝屏的文件了,接下来怎么办呢?上网查资料,把导致蓝屏的那个文件名在网上搜索,基本就知道是什么文件了,一般网上也有相关的解决办法,看看要删除些什么插件、打什么补丁或者重装软件等等。导致问题的不一定是.sys文件也有可能是.dll,这篇文章只能帮你找出导致蓝屏的元凶,具体的解决办法得上网查。如果是查不到什么信息的.sys或者.dll就要当心了,有可能是病毒或者rootkit

附:
windbg基本调试命令:
r 可以显示系统崩溃时的寄存器,和最后的命令状态。
dd 显示当前内存地址,dd 参数:显示参数处的内存。
u 可以显示反汇编的指令
!analyze -v 显示分析的详细信息。
kb 显示call stack 内容
.bugcheck 可以显示出错的代码

windbg诊断蓝屏的一点补充

导入dump文件分析完毕后,不要关闭,在后面输入!analyze -v,这个命令可以查看dump文件的详细情况,如图:



对普通用户有用的还有下面一些信息:


第一行 DEFAULT_BUCKET_ID: 错误类型,这个懂点编程和操作系统知识的朋友用得上点
第三行 PROCESS_NAME: XXX.exe 这个是导致错误的进程,查出是什么文件导致的蓝屏后,再看这里就知道是谁调用了错误文件,比如你查出123.sys导致蓝屏,但你查不到123.sys是哪个程序调用的,就可以用这个方法来看看,比如查出了是456.exe,你就可以在机子上或者网上搜索相关信息了。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ps520 发表于 2009-8-17 12:33
0.0

sf


H哥德东西就是亲切·
caowuxiang 发表于 2009-8-17 22:27
coolhui 发表于 2009-8-18 09:32
jomin 发表于 2009-8-29 14:04
windbg好用吗
cai_jay 发表于 2009-9-12 13:15
楼主产量好高
classfree 发表于 2010-4-5 21:01
看不到图片,LZ是哪转的?
UserName 发表于 2010-9-1 00:09
那个所谓的dump文件还是不怎么会用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:28

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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