分享免费的编程资源和教程

网站首页 > 技术教程 正文

2023驱动保护学习 -- 卸载驱动程序

goqiw 2024-09-12 16:24:19 技术教程 13 ℃ 0 评论

一、创建回调函数,卸载驱动的时候会执行里面的操作

void 卸载驱动回调函数(PDRIVER_OBJECT 驱动对象)
{
  KdPrint(("nxyn:我被卸载了,驱动编号=%p", 驱动对象));
}

二、在主函数中调用该函数

extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT 驱动对象, _In_ PUNICODE_STRING psg)
{
  
  驱动对象->DriverUnload = 卸载驱动回调函数;
  KdPrint(("nxyn:第一个驱动程序,驱动编号:%p", 驱动对象));
  return 0;
}

三、生成驱动文件,拷贝到虚拟机进行测试

四、在DebugView中设置标识符"nxyn",只查看包含nxyn的输出语句

五、在Monitor中,导入该驱动程序,点击go,然后点击stop,查看输出效果

六、在DebugView中会显示,我们要输出的语句,说明驱动加载和卸载都没问题。

七、程序源码

#include <ntifs.h>


void 卸载驱动回调函数(PDRIVER_OBJECT 驱动对象)
{
  KdPrint(("nxyn:我被卸载了,驱动编号=%p", 驱动对象));
}


extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT 驱动对象, _In_ PUNICODE_STRING psg)
{
  
  驱动对象->DriverUnload = 卸载驱动回调函数;
  KdPrint(("nxyn:第一个驱动程序,驱动编号:%p", 驱动对象));
  return 0;
}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表