文件过滤驱动实现目录重定向(一)good
文件过滤驱动拦截的IRP主要包括以下几个:
IRP_MJ_CREATE,文件创建操作,文件的任何操作,都是从这里开始的。
IRP_MJ_CLEANUP,文件的HANDLE句柄全部关闭会触发这个消息
IRP_MJ_CLOSE,文件对象 FILE_OBJECT引用减为0,文件对象即将被删除时触发。
IRP_MJ_READ、IRP_MJ_WRITE, 文件的读写操作
IRP_MJ_QUERY_INFORMATION 查询文件信息,比如文件创建修改时间,文件大小等等。
IRP_MJ_SET_INFORMATION 设置文件信息,比如删除文件,重名文件,更改文件大小等等。
IRP_MJ_DIRECTORY_CONTROL 查询某个目录下的文件和子目录信息。
还有几个也需要处理的,如果不处理可能某些文件操作不正常。
IRP_MJ_QUERY_VOLUME_INFORMATION ,查询目录所在的卷设备信息。
IRP_MJ_QUERY_SECURITY 查询安全信息,在win7系统得处理这个,否则exe程序无法执行。
(还包括其他需要处理的IRP)。
看起来处理的IRP不算多,我当初也是这么想的,可是处理的细节却挺多。
(查看 WDK的实例里边的 fastfat目录 ,微软实现FAT32文件系统的源代码,那里边除了代码还是代码,而且还是异常的多)
我在前几篇文章中讲过虚拟磁盘驱动, 虚拟磁盘驱动加载的时候,会在Windows磁盘管理器出现一个新的磁盘,把这个磁盘分区格式化之后,可以正常的把他当成一个真正的磁盘来操作,可以在上边存放,删除文件目录等。
这些操作,经过Windows系统重重解析处理,最后会转换成对虚拟磁盘驱动单纯的对磁盘扇区的偏移读写操作,
然后把对扇区的偏移读写,通过多种途径比如是一个真正的文件,保存起来。操作这个虚拟磁盘,最终就变成操作一个单纯文件。
类似的概念,比如 Windows自带的vhd或vhdx格式的虚拟磁盘文件。
http://blog.csdn.net/fanxiushu/article/details/43636575
文件过滤驱动实现目录重定向(一)good的更多相关文章
- Windows 文件过滤驱动经验总结
Windows 文件过滤驱动经验总结作者:sinister 本文转载自驱动开发网 看了 ChuKuangRen 的第二版<文件过滤驱动开发教程>后,颇有感触.我想,交流都是建立在平等的基础 ...
- 基于Minifilter框架的文件过滤驱动理解
概述 Minifilter即File System Minifilter Drivers,是Windows为了简化第三方开发人员开发文件过滤驱动而提供的一套框架,这个框架依赖于一个称之为Filter ...
- [转载]文件过滤驱动 文件系统激活通知 IoRegisterFsRegistrationChange函数实现
IoRegisterFsRegistrationChange 注册一个文件系统变动回调函数,用来被通知文件系统的激活和注销,激活是指第一次加载文件系统,当一个文件系统已经加载后,当加载一个同种文件系统 ...
- 文件过滤驱动框架Minispy解析一
因工作需要,研究minispy文件过滤框架,上图为我整理出的其内核部分代码的逻辑.
- File System Minifilter Drivers(文件系统微型过滤驱动)入门
问题: 公司之前有一套文件过滤驱动,但是在实施过程中经常出现问题,现在交由我维护.于是在边看代码的过程中,一边查看官方资料,进行整理. 这套文件过滤驱动的目的只要是根据应用层下发的策略来控制对某些特定 ...
- 驱动开发:内核枚举Minifilter微过滤驱动
Minifilter 是一种文件过滤驱动,该驱动简称为微过滤驱动,相对于传统的sfilter文件过滤驱动来说,微过滤驱动编写时更简单,其不需要考虑底层RIP如何派发且无需要考虑兼容性问题,微过滤驱动使 ...
- 一个文件系统过滤驱动的demo
因为没写过FSD过滤驱动,所以拿来练练手,没有什么技术含量.参考自Win内核安全与驱动开发. 先梳理一下大概的流程,就是怎么去绑定设备栈.怎么去过滤各种请求的. 首先肯定是要绑定设备栈的,来看下怎么绑 ...
- 常用命令(过滤、管道、重定向、ping 命令、netstat 命令、ps命令)
常用命令 过滤 过滤出 /etc/passwd 文件中包含 root 的记录 grep 'root' /etc/passwd 递归地过滤出 /var/log/ 目录中包含 linux 的记录 grep ...
- Windbg对过滤驱动DriverEntry函数下断点技巧
方法1: 1> 先用DeviceTree.exe查看指定的过滤驱动的Load Address(加载地址) 2> 再用LordPE.EXE查看指定过滤驱动文件的入口点地址 3> 计算过 ...
随机推荐
- 20160522--20160526----mybatis入门基础
一.基础知识: 1.对原生态jdbc程序(单独使用jdbc开发)问题总结 2.mybatis框架原理 (掌握) 3.mybatis入门程序 4.用户的增.删.改.查 5.SqlMapConfi ...
- nginx install in centos
1.在nginx下载rpm包,如nginx-release-centos-6-0.el6.ngx.noarch.rpm ,并安装(可用yum直接安装): 注:rpm包只是提供一个nginx源. 2.使 ...
- Objective-C 学习笔记(Day 3,下)
------------------------------------------- 封装概念及其原理 一个Gun类的例子来详细说明这一环节: #import <Foundation/Foun ...
- Linux中的磁盘
Linux的磁盘管理 (很重要请注意高能预警) 硬盘:几个盘片,双面,磁性颗粒, 处理速率不同步:借助于一个中间层 文件系统(FileSystem) 可以实现对磁盘行的文件进行读写 文 ...
- 关于NPC和NP-Hard问题
参考链接: 1. P.NP.NPC和NP-hard问题的理解 参考:<算法导论>
- Python3 内建模块 datetime/collections/base64/struct
datetime 我们先看如何获取当前日期和时间: >>> from datetime import datetime >>> now = datetime.now ...
- MySQL字符串类型转换时间类型
如果MySQL数据库里面的某个时间用的是varchar(或者是char)类型的,这样可以方便系统使用而不用随便转换时间类型来适应数据库版本的不同,当要把取出的字段转换成时间类型的时候,可以按如下方法操 ...
- Maven插件实现的autoconfig机制(转)
autoconfig这种机制在软件开发和发布的过程中是非常方便也是非常必要的一种动态替换配置信息的一种手段,一种很贴切的比喻:这个就像在windows下面安装一个软件时,我们按照安装向导给我们弹出提示 ...
- Linux文件保护禁止修改、删除、移动文件等,使用chattr +i保护
不让用户修改.删除文件等,使用 chattr保护 chattr命令的用法:chattr [ -RV ] [ -v version ] [ mode ] files… 最关键的是在[mode]部分,[m ...
- 2、分布式文件系统---HDFS
1.HDFS设计前提与目标 (1)硬件错误是常态而不是异常. 错误检测并快速自动恢复是HDFS最核心设计目标 (2)流式数据访问.运行在HDFS上的应用主要是以流式数据读取为主,做批量处理而不是用户 ...