一、系统dump文件
dump文件生成设置
dump文件生成设置->系统属性->高级->启动和故障恢复
将事件写入系统日志 勾选
写入调试信息:核心内存转储
vmware花屏问题 vmtools的集成显卡驱动造成的
winbug调试器第一次加载dump文件很慢要是要下载相关的文件,后面就可以很快的打开了。
参考地址:https://blog.youkuaiyun.com/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);

虚拟机调试结果


文章介绍了如何设置系统生成dump文件用于调试,特别是针对VMware花屏问题,指出这可能是由于vmtools的集成显卡驱动导致的。作者提到,使用32位的绕过驱动签名代码可能会导致蓝屏,而切换到64位的代码可以避免这个问题。此外,文章提供了一个名为BypassCheckSign的函数示例,该函数用于在驱动加载时修改签名检查,并建议在驱动对象创建时调用此函数。
3661

被折叠的 条评论
为什么被折叠?



