一、系统dump文件
dump文件生成设置
dump文件生成设置->系统属性->高级->启动和故障恢复
将事件写入系统日志 勾选
写入调试信息:核心内存转储
vmware花屏问题 vmtools的集成显卡驱动造成的
winbug调试器第一次加载dump文件很慢要是要下载相关的文件,后面就可以很快的打开了。
参考地址:https://blog.csdn.net/cosmoslife/article/details/113995641
蓝屏原因是因为我们是写的64位的驱动,用的是32位的绕过驱动签名代码,如果用64位的绕过驱动签名的代码就不会蓝屏了。
驱动层:driverentry21.c
把typedef struct _KLDR_DATA_TABLE_ENTRY
{//32位结构
LIST_ENTRY listEntry;
ULONG unknown1;
ULONG unknown2;
ULONG unknown3;
ULONG unknown4;
ULONG unknown5;
ULONG unknown6;
ULONG unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
换成
// 编程方式绕过签名检查
BOOLEAN BypassCheckSign(PDRIVER_OBJECT pDriverObject)
{
#ifdef _WIN64
typedef struct _KLDR_DATA_TABLE_ENTRY
{//64位结构
LIST_ENTRY listEntry;
ULONG64 __Undefined1;
ULONG64 __Undefined2;
ULONG64 __Undefined3;
ULONG64 NonPagedDebugInfo;
ULONG64 DllBase;
ULONG64 EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
USHORT LoadCount;
USHORT __Undefined5;
ULONG64 __Undefined6;
ULONG CheckSum;
ULONG __padding1;
ULONG TimeDateStamp;
ULONG __padding2;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
#else
typedef struct _KLDR_DATA_TABLE_ENTRY
{//32位结构
LIST_ENTRY listEntry;
ULONG unknown1;
ULONG unknown2;
ULONG unknown3;
ULONG unknown4;
ULONG unknown5;
ULONG unknown6;
ULONG unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
ULONG Flags;
} KLDR_DATA_TABLE_ENTRY, *PKLDR_DATA_TABLE_ENTRY;
#endif
PKLDR_DATA_TABLE_ENTRY pLdrData = (PKLDR_DATA_TABLE_ENTRY)pDriverObject->DriverSection;
pLdrData->Flags = pLdrData->Flags | 0x20;
KdPrint(("yjx:SYS pLdrData->Flags = pLdrData->Flags | 0x20:"));
return TRUE;
}
二、在加载驱动时被调用下加入
BypassCheckSign(DriverObject);