自从去年更换了一台工作站笔记本以来,电脑总是莫名奇妙的报出蓝屏故障,总以为是双固态硬盘的其中一块游戏盘发热量大造成的,好在蓝屏的出现频率大概两三个月才发生一次,便也就觉得不会影响使用。
今天帮助用户分析一台永恒之蓝漏洞攻击引起蓝屏的dump文件时,在这台电脑上安装了windbg,借此机会验证一下之前的猜测。
分析过程Windows记录了4次蓝屏事件,我的电脑是被设置过的,所以生成的是minidump文件,只生成了3-4MB大小的dump文件,可以说是相当节约文件系统的。
今天分析的永恒之蓝文件有1.5GB,在足够分析的前提下还是minidump会比较受欢迎,设置的方法可以参考下图:
设置minidumpwindbg的安装稍微有些麻烦。要到微软的官网下载合适的winsdk安装程序,我下载的是ISO镜像离线安装,文件名称是22621.1778.230511-2102.ni_release_svc_prod3_WindowsSDK.iso。
安装好之后打开windbg(x64)就可以见到界面,开始只需要两个操作:
1.配置符号文件路径和下载链接,按Ctrl+s快捷键,设置为SRV*e:Symbols*https://msdl.microsoft.com/download/symbols
符号文件2.导入dump文件,按快捷捷ctrl+d,选择文件,这里需要注意,不能在windows的安装目录中打开dump文件,会告诉你权限不足。解决方法有两个,推荐第一个:第一种方法,提前把文件从Windows目录中复制到其他盘的其他路径,再导入Windbg;第二种方法,以管理员身份运行windbg程序。
导入文件之后windbg一路狂飚,左下角显示busy的时候,什么也做不了,只能等待。出到kb的提示后,开始总体分析!analyze-v:
分析1 真相1看到这一段代码的时候,问题已经很明显,原来是它啊,msedge.exe不就是微软的Edge浏览器嘛。
再细看一下哪里的问题:
中断点dxgmms2是directx的驱动程序。原来产生蓝屏是Edge和显卡驱动,要想解决这个问题,有2个思路,我还得慢慢去试:
1.更新显卡驱动
2.把电脑对双显卡的驱动管理切换成自定义配置,不让系统自己管理
结语给一点时间,我还得慢慢去试,不一定能解决,现在问题并不是我一开始想的那样,遇到问题少猜测,多分析才是正道。