2023驱动保护学习 -- 创建第一个驱动程序

简介: 2023驱动保护学习 -- 创建第一个驱动程序

一、环境安装

0、VS2022安装,就不细说了

1、从下面地址下载两个软件WDK和SDK,并安装

https://learn.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk

2、两个软件一路下一步即可

二、新建一个驱动程序,建一个空程序

三、代码编写

1、在源文件夹里面添加一个C++文件编写驱动

2、添加入口点

#include <ntifs.h>
extern "C" NTSTATUS DriverEntry(_In_ PDRIVER_OBJECT Dot, _In_ PUNICODE_STRING psg)
{
  KdPrint(("hello world!!!"));
  return 0;
}

3、设置生成驱动的属性

4、生成项目,将驱动文件*.sys拷贝出来

5、打开Debug View和驱动管理

6、在Monitor中点击文件夹,加载我们新建的驱动

7、设置DebugView

8、点击驱动管理go标识,提示加载成功

9、DebugView会显示kdprint里面的内容,说明驱动生成没问题。

四、踩过的坑

1、驱动由于没有相关认证,所以调试的时候要,禁用签名验证,禁用后桌面右下角会有如下标致

 bcdedit /set testsigning on   禁用验证
bcdedit /set testsigning off   启动验证

2、DebugView没有调试信息,在注册表中添加一个这样的子项

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter


目录
相关文章
|
7月前
|
Go 开发工具 C++
2023驱动保护学习 -- 创建第一个驱动程序
2023驱动保护学习 -- 创建第一个驱动程序
71 0
|
7月前
2023驱动保护学习 -- 通过驱动保护进程
2023驱动保护学习 -- 通过驱动保护进程
47 0
|
7月前
2023驱动保护学习 -- 通过代码实现驱动卸载
2023驱动保护学习 -- 通过代码实现驱动卸载
48 0
|
7月前
2023驱动保护学习 -- 创建驱动设备及符号链接并实现删除操作
2023驱动保护学习 -- 创建驱动设备及符号链接并实现删除操作
54 0
|
7月前
|
数据库 C++
2023驱动保护学习 -- 通过代码实现驱动加载
2023驱动保护学习 -- 通过代码实现驱动加载
42 0
|
7月前
|
Go
2023驱动保护学习 -- 卸载驱动程序
2023驱动保护学习 -- 卸载驱动程序
46 0
|
7月前
驱动保护 -- 读取被保护的数据(第二种方法)
驱动保护 -- 读取被保护的数据(第二种方法)
53 0
|
网络协议 流计算 Windows
驱动开发:探索DRIVER_OBJECT驱动对象
本章将探索驱动程序开发的基础部分,了解驱动对象`DRIVER_OBJECT`结构体的定义,一般来说驱动程序`DriverEntry`入口处都会存在这样一个驱动对象,该对象内所包含的就是当前所加载驱动自身的一些详细参数,例如驱动大小,驱动标志,驱动名,驱动节等等,每一个驱动程序都会存在这样的一个结构。
60407 0
驱动开发:探索DRIVER_OBJECT驱动对象
|
Linux
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
【Linux系统开发】 x210开发板 虚拟驱动创建流程(驱动编译进内核)
147 0
【驱动详解】如何理解驱动程序
【驱动详解】如何理解驱动程序
366 0
【驱动详解】如何理解驱动程序