第一个内核程序

第一个内核程序

新建项目

1566894917530

设置项目属性

1566894978251

代码

#include <ntddk.h>

// 卸载
VOID MyDriverUnload(PDRIVER_OBJECT driver)
{
// 避免编译器报未引用参数的报告
UNREFERENCED_PARAMETER(driver);
// 打印
KdPrint(("Unload "));
}

// 相当于main
NTSTATUS DriverEntry(PDRIVER_OBJECT driver, PUNICODE_STRING path)
{

UNREFERENCED_PARAMETER(path);
// 手动断下
_asm int 3;
KdPrint(("First Driver "));
// 注册驱动卸载函数
driver->DriverUnload = MyDriverUnload;
return STATUS_SUCCESS;
}

生成文件仍到虚拟机

虚拟机需要更改注册表让它能显示KdPrint打印的信息到Windbg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerDebug Print Filter]
"DEFAULT"=dword:0000000f

1566895202360

用加载工具加载

1566895367590

点击启动后会断下,

停在了int3.按F10.就是下一步,会打印First Driver

1566895927945

就可以调试了

我的电脑-右键属性-高级系统属性-

1566896428342

找到MEMORY.DMP

然后Windbg-File-OpenCrushDump打开它。

原文地址:https://www.cnblogs.com/ltyandy/p/11419442.html