第一个内核程序

第一个内核程序

新建项目

1566894917530

设置项目属性

1566894978251

代码

#include <ntddk.h>

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

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

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

生成文件仍到虚拟机

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

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter]
"DEFAULT"=dword:0000000f

1566895202360

用加载工具加载

1566895367590

点击启动后会断下,

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

1566895927945

就可以调试了

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

1566896428342

找到MEMORY.DMP

然后Windbg-File-OpenCrushDump打开它。

posted @ 2019-08-27 17:04  ltyandy  阅读(293)  评论(0编辑  收藏  举报