首先是一个用VS写的能导致蓝屏的一个项目(此项目应该是在VS2010上写的),我是在WIN7 64位系统上用的VS2013+WDK把其编译出来sys文件。
然后打开虚拟机里调试模式下的XP系统,把SYS文件放进XP系统,用DriverMonitor加载并运行驱动,
然后蓝屏,产生DMP文件,把这DMP文件拿回到 这个64位系统,
之后我根据项目代码中,可能存在错误的地方修改了一下(在DriverEntry中)。然后再编译一次。
================================================
编译完我就用WinDbg打开DMP文件,(这时是第一次打开,符号包跟BSODCheck.pdb的路径也是设置好了的) 输入!analyze -v 就出现 一段信息,但当时只留意到开始的几句。
其中有
Probably caused by : BSODCheck.sys ( BSODCheck!DriverEntry+XXX )大概这样的提示,
提示了是在DriverEntry中。
然后继续弹出其它信息,但我没有看到有CONTEXT等详细内容,于是就把DriverEntry中的代码,改回原来的样子(没修改前的样子)再编译一次,
然后再用WinDbg打开DMP文件,输入指令,就出现了如下信息(这次没有打开虚拟机里面的系统)
Use !analyze -v to get detailed debugging information.
BugCheck 19, {20, 89937d90, 89937db8, a050001}
*** ERROR: Module load completed but symbols could not be loaded for BSODCheck.sys
Probably caused by : BSODCheck.sys ( BSODCheck+1179 )
Followup: MachineOwner
BSODCheck.sys ( BSODCheck+1179 ) 括号里显示的函数名不见了,上面好像也比之前多了句ERROR提示
之后我怎么 弄,都提示这个,当然输入了!analyze -v都是得到不完整信息
STACK_COMMAND: kb
FOLLOWUP_IP:
BSODCheck+1179
babc9179 6800800080 push 80008000h
SYMBOL_STACK_INDEX: 2
SYMBOL_NAME: BSODCheck+1179
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: BSODCheck
IMAGE_NAME: BSODCheck.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 538c46a1
FAILURE_BUCKET_ID: 0x19_20_BSODCheck+1179
BUCKET_ID: 0x19_20_BSODCheck+1179
Followup: MachineOwner
---------
而这段就是最后一段信息,没有出现详细的信息。而pdb文件的路径我一直都没有改变过的,每次用WinDbg打开DMP文件前,我都检查下,符号包路径好了没,PDB路径好了没。
然后想是不是符号包下载不全,就回到WinDbg打开Attach to a Process随便附加到一个进程,然后在下面输入命令 .reload /f 进行下载,从原来55M,
下到现在128M左右,再试,依旧是这些不完整信息。这样就没法根据详细信息处理蓝屏问题啊。
求教到底是哪里出错了?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法