驱动开发
柠檬的泪是酸的@
能让自己登高的,永远不是别人的肩膀
展开
-
05 常规3环和0环通信、驱动注册、运行、停止、卸载
常规3环和0环通信0环代码#include <ntddk.h>//函数声明typedef NTSTATUS(_stdcall *_PsTerminateProcess)(PEPROCESS pEprocess,NTSTATUS ExitCode);_PsTerminateProcess pspTerminateProcess = NULL;//操作码:0x0-0x7FF 被保留,0x800-0xFFF 可用#define KillAPPTOOL CTL_CODE(FILE_D原创 2023-05-04 14:55:19 · 149 阅读 · 0 评论 -
04 设备创建方式
应用层通过CreateFile、ReadFile、WriteFile、CloseHandle等函数打开、从设备读取数据、向设备写入数据、关闭设备的时候,会使操作系统分别产生出IRP_MJ_CREATE、IRP_MJ_READ、IRP_MJ_WRITE、IRP_MJ_CLOSE等不同的IRP。值得注意的是,我们之前使用CreateFile这个东西只是为了创建文件,其实它的本质是与设备对象创建访问,我们3环程序想要通过符号链接与驱动建立通讯,就必须通过这个函数。其实就是一个别名,没有这个别名,在3环不可见。原创 2023-05-04 09:47:54 · 73 阅读 · 0 评论 -
03 特征码搜索PspTerminateProcess函数、隐藏驱动模块
函数地址。原创 2023-04-28 14:38:48 · 355 阅读 · 0 评论 -
02 读GDT表、字符串操作、遍历内核模块
【代码】(实验) 内核编程基础。原创 2023-04-27 16:41:06 · 154 阅读 · 0 评论 -
01 驱动编写基础案列
在同一处理器上,等级高的程序可以打断等级低的程序HOOK的时候使用的程序等级是 2缺页异常的 分页处理程序 等级是 2所以HOOK必须使用非分页内存。原创 2023-04-27 15:26:38 · 108 阅读 · 0 评论 -
基础环境配置
VS2019官网下载社区版WDK官网下载安装后我们可以正式写一个简单的XP驱动创建一个新项目,添加源文件main.c (c++文件也可以,名字任意取),我们写一个简单的驱动程序。原创 2023-04-27 10:33:14 · 431 阅读 · 0 评论