第一个内核程序
新建项目
设置项目属性
代码
#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
用加载工具加载
点击启动后会断下,
停在了int3.按F10.就是下一步,会打印First Driver
就可以调试了
我的电脑-右键属性-高级系统属性-
找到MEMORY.DMP
然后Windbg-File-OpenCrushDump打开它。