《Windows内核安全与驱动开发》自学笔记之@IRP

IRP(I/O Request Packet)是Windows内核中用于上层应用与底层驱动通信的关键数据结构。它在创建、读取、写入和设备控制等操作中扮演重要角色。IRP通过定义不同的类型如IRP_MJ_CREATE、IRP_MJ_READ等,使得操作系统能够分派相应的处理函数。驱动程序需注册IRP处理函数,并通过符号链接与应用程序交互。
摘要由CSDN通过智能技术生成
什么是IRP

I/0 request packets,简称IRP,即输入输出请求包,它是WINDOWS内核的一种非常重要的数据结构。上层应用程序与底层驱动程序通信时,应用程序会发出I/O请求,操作系统将相应的I/O请求转换成相应的IRP,不同的IRP会根据类型被分派到不同的派遣历程中进行处理。

作用:

上层应用程序与底层驱动通信,即EXE程序与SYS之间的通讯。

五中常用的IRP类型:

不止这种类型,其它类型可到官网查询

#define IRP_MJ_CREATE 0X00 //对应用户层函数CreateFile()
#define IRP_MJ_CLOSE  0X02 //对应用户层函数CloseHandle()
#define IRP_MJ_READ 0X03 //对应用户层函数ReadFile()
#define IRP_MJ_WRITE 0X04 //对应用户层函数WirteFile()
#define IRP_MJ_DEVICE_CONTROL 0X0e //DeviceIoControl()
过程:

1、创建IRP处理函数
2、在驱动入口函数里面DriverEntry()注册处理函数
3、细化IRP函数
(1)注册派遣函数
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210104144656420.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2x5Z2wzNQ==,size_16,color_FFFFFF,t_70在这里插入图片描述
4、应用程序与驱动的通讯
(1)驱动里面创建符号链接
在这里插入图片描述
(2)EXE程序通过符号链接与相应的驱动通信
在这里插入图片描述

本书的前身是《天书夜读——从汇编语言到Windows内核编程》和《寒江独钓——Windows内核安全编程》。与Windows客户端安全软件开发相关的驱动程序开发是本书的主题。书中的程序使用环境从32位到64位,从Windows XP到Windows 8都有涉及,大部分程序不经过修改即可在Windows 10上运行。同时本书也深入浅出地介绍了进行内核安全编程所需要的操作系统、汇编等基础知识。 本书共分三篇,基础篇囊括了驱动开发的基础知识,降低了入门的难度;开发篇介绍了在实际工作中可能遇到的各种开发需求的技术实现,包括:串口的过滤、键盘的过滤、磁盘的虚拟、磁盘的过滤、文件系统的过滤与监控、文件系统透明加密、文件系统微过滤驱动、网络传输层过滤、Windows过滤平台、NDIS协议驱动、NDIS小端口驱动、NDIS中间层驱动、IA-32汇编基础、IA-32体系中的内存地址、处理器权限级别切换、IA-32体系结构中的中断和Windows内核挂钩;高级篇包含了汇编语言、操作系统原理、处理器体系架构相关的内容。本书是由长期从事这个行业的工程师自己写的,所以处处以实用为准。对细节的考究主要体现在对实际问题的解决,而不是知识的详尽程度上。 本书适合计算机安全软件从业人员、计算机相关专业院校学生以及有一定C语言和操作系统基础知识的编程爱好者阅读。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值