文件系统Minifilter驱动(一)

文件系统Minifilter驱动

 

 

声明

本系列文章源于WDK,所有权利归原作者所有,翻译的目的只为交流和学习。除了商用你可以随意地使用这篇译文。但请不要删除声明。
                                                     ——by jununfly

 

 

说明

 

所有preoperation及postoperation均简写为pre-oper和post-oper

所有文件系统过滤驱动均简写为FSFD

所有基于IRP的I/O即IRP-based I/O均简写为IRP-I/O

 

版本

 

20090220

 

Filter管理器和Minifilter驱动架构

Filter管理器是一个内核模式驱动,它遵照legacy文件系统filter模型并暴露了FSFD中必需的一般功能。利用这些功能,第三方开发者可以写minifilter驱动,这样的驱动比legacy FSFD更易于开发,因此缩短了开发过程同时制造出更高质量、更灵活的驱动。

本章包括: 

一、Filter管理器概念

Filter管理器随Windows一起被安装,但它只在一个minifilter驱动被加载时才会起作用。Filter管理器绑定到目标卷的文件系统栈上。Minifilter驱动为它要过滤的I/O操作而通过向filter管理器注册来间接绑定到文件系统栈上。

 

Legacy过滤驱动在文件系统I/O栈中的位置,相对于其他过滤驱动来说是在系统启动时由它的加载顺序组决定的。例如,一个antivirus过滤驱动在栈中的位置应该高于一个replication过滤驱动,因而它能在文件被复制到远程服务器之前探测病毒并消除文件中的病毒。因此,FSFilter Anti-Virus加载顺序组中的过滤驱动的加载要先于FSFilter Replication组中的过滤驱动。每一个加载顺序组都有一个相应的系统定义的类和INF文件中要使用的类GUID。

像legacy过滤驱动一样,minifilter驱动的绑定也按照一个特定的顺序。不过,绑定体的顺序是由一个叫altitude的唯一标识符决定的。Minifilter驱动在特定卷上的一个特定altitude的绑定体被称为这个minifilter驱动的一个instance。

 

Minifilter驱动的altitude确保它的实例总是在相应的位置被加载,它决定filter管理器以什么顺序来调用minifilter驱动来处理I/O。Altitudes由微软分配和管理。

 

下图展示了一个用filter管理器简化后的I/O栈和三个minifilter驱动。

 

用Filter管理器简化后的I/O栈和Minifilter驱动

 

 

Minifilter驱动能过滤IRP-I/O操作、fast I/O和FSFilter callback操作。对每一个它要过滤的I/O操作它都可以注册一个pre-oper callback例程,一个post-oper callback 例程或二者都注册。当处理一个I/O操作时,filter管理器调用每个minifilter为此操作注册的callback例程。当该callback例程返回时,filter管理器调用下一minifilter驱动为此操作注册的callback例程。

 

举个例子,假设上图中的三个minifilter驱动都为同一I/O操作注册了callback例程,则filter管理器会以altitude由高到低的顺序(A,B,C)调用它们的pre-oper callback例程,然后把此I/O操作转寄给下一较低级的驱动进一步处理。当filter管理器接收到此I/O请求的完成时,它以相反的顺序即由低到高(C,B,A)调用每一个minifilter驱动的post-oper callback例程。

为了同legacy过滤驱动协同工作,filter管理器可以绑定filter设备对象到同一个文件系统I/O栈的多个位置。每一个filter管理器的filter设备对象都叫做一个frame。从legacy过滤驱动的角度来说,每一个filter管理器frame仅仅是另外的一个legacy过滤驱动。

 

每一个filter管理器frame都表示一个altitude区间。如果某个legacy过滤驱动被绑定到文件系统栈上,系统就为在该legacy过滤驱动之上或之下的altitude范围绑定一个filter管理器frame,来确保minifilter驱动绑定到正确的位置上。

如果某个minifilter驱动被卸载并重加载,则它会被重加载到同一frame(它从其中被卸载)中的同一altitude上。

用两个Filter管理器Frame和一个legacy过滤驱动简化后的I/O栈

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
软件名称:SEFS透明加密内核 V 2.0.0.1软件版本:2.0.0.1建议分类:系统安全/文件加密软件大小:371K安装平台:Win2000 sp4+urp / xp sp2 / 2003 sp1 / vista软件语言:简体中文/繁体中文/英文软件授权:共享软件软件主页:http://www.sefs.net支持邮箱:admin@sefs.net软件下载:http://www.sefs.net/setup.rar国内首家采用MS全新 MiniFilter架构的SEFS透明加密内核 V 2.0.0.1发布1、简述 SEFS透明加密开发内核是基于MS最新的IFS文件过滤驱动MiniFilter)开发的透明加密平台。加密标识内置于文件本身、可支持PKCS7电子 信封、加密算法可在内核态。也可在应用层,支持MS CSP 标准,可实现对加密硬件如USBKEY的支持。加、解密操作均受保护 的内存区域完成,高效安全。不会产生临时文件,同时配套保护驱动可防止进程注入、内存Dump、和截屏操作,全程保护您的 机密资料。2、特点   1、强制加密:客户端指定规则或匹配规则产生的任意文件均强制加密。所有的“文件另存”均为加密。不管是 怎么样的文件名称。SEFS是智能识别应用程序的行为.  2、文件加密标记识别采用指纹智能识别技术,加密标记植于文件本身,支持电子信封模式(PKCS7)和支持   身份/身份组机制.方便交流和传输。  3、SEFS平台工作于文件系统驱动层面,可以支持内存映射文件的方式.而非一些基于API Hook方式的加密系   统绝对无法支持内存映射文件。例如最常见的notepad(记事本)/另外可执行文件的加载执行均是通过内存   映射文件的方式.  4、进程识别基于特征值,而非简单的基于进程名称判断。可防止进程改名、加壳等形式的攻击。  5、非授权进程无法读取密文。网络间受控文件的传输为密文。FoxMail、OutLook或Ftp客户端等网络软件无法发送 明文。(假设其为非授权进程的话) 6、完美解决明文缓存问题,即便是密文正在被打开,也不能非法夺取明文 7、使用全新的MiniFilter架构,同杀毒软件有较好的兼容性,同时在性能和稳定性方面,较老的IFS过滤驱动 有着明显的提升。 8、支持应用层的加、解密算法和引擎。可兼容MS CSP 、PKCS11 等标准,从而实现硬件的加解密。满足不同的安全级别的要求。3、安装环境 客户端:Win2000 sp4 + URP /XP sp2/2003 sp1 / Vista Win2000需要Update Rollup Pack (URP) 下载:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=B54730CF-8850-4531-B52B-BF28B324C6624、支持的软件: 1. 办公类: Microsoft Office 2000/XP/2003 、 Adobe acrobat7 、NotePad、 WordPad。 2. 图像类: Photoshop 、 CorelDraw12 、 Mspaint画图等 3. 设计类: AutoCAD 2004 、圆方BtoCAD、等 4. ...................SEFS--透明加密内核=============================================商业授权:sales@sefs.netBug 报告:bug@sefs.net

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值