![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核文件管理
文章平均质量分 65
内核环境下的文件管理技术。
江小辉9914
记录一下学习过程。
展开
-
内核文件管理-IRP(一)创建或打开文件
内核下通过直接向 FSD (File System Driver) 发送 IRP (I/O Request Packet)来管理文件,可以绕过一些 API Hook。本文讲怎样通过向 FSD 发送 IRP_MJ_CREATE 消息的 IRP 来创建或打开文件(或目录)。头文件及其他声明或定义#include <ntifs.h>typedef struct _AUX_ACCESS_DATA { PPRIVILEGE_SET PrivilegesUsed; GENERIC_MAPPIN原创 2021-01-09 00:15:06 · 969 阅读 · 1 评论 -
内核文件管理-IRP(二)文件属性查询和设置
本文讲怎样通过向 FSD 发送 IRP_MJ_QUERY_INFORMATION 消息 / IRP_MJ_SET_INFORMATION 消息的 IRP 来 查询/设置 文件属性。IrpQueryInformationFile函数参数该函数是在打开文件的基础上操作的,用于查询文件的信息,《内核文件管理-IRP(一)创建或打开文件》中实现的 IrpCreateFile 函数成功打开文件后返回的 文件句柄 ,这里将作为参数传入 IrpQueryInformationFile 函数。NTSTATUS Irp原创 2021-01-10 14:14:55 · 592 阅读 · 0 评论 -
内核文件管理-IRP(三)文件读写
本文讲怎样通过向 FSD 发送 IRP_MJ_READ 消息 / IRP_MJ_WRITE 消息的 IRP 来 读/写 文件内容。上一篇:内核文件管理-IRP(二)文件属性查询和设置IrpReadFile函数参数该函数是在 IrpCreateFile函数 打开文件的基础上操作的,用于读取文件。NTSTATUS IrpReadFile( IN PFILE_OBJECT pFileObject, // 文件句柄 OUT PIO_STATUS_BLOCK IoStatusBlock,原创 2021-01-10 19:08:32 · 864 阅读 · 1 评论 -
内核文件管理-IRP(四)文件遍历
本文讲通过向FSD发送IRP_MJ_DIRECTORY_CONTROL消息的IRP,来获取一个目录下的文件信息。上一篇:内核文件管理-IRP(三)文件读写IrpQueryDirectoryFile函数参数该函数与之前的 IrpQueryInformationFile 和 IrpSetInformationFile 类似,仅改变 IRP 和 I/O 堆栈 的设置。NTSTATUS IrpQueryDirectoryFile( IN PFILE_OBJECT pFileObject, //原创 2021-01-10 23:03:07 · 693 阅读 · 0 评论 -
内核文件管理-IRP 源代码
IRP_FSD.h 头文件#pragma once#include <ntifs.h>// 使用后需要调用ObRedeference函数关闭文件句柄NTSTATUS IrpCreateFile( OUT PFILE_OBJECT* ppFileObject, // 用于返回文件句柄的指针 IN ACCESS_MASK DesiredAccess, // 指定访问权限 IN PUNICODE_STRING pustrFilePath, // 文件路径 OUT原创 2021-01-09 00:11:02 · 438 阅读 · 0 评论