文件过滤驱动
文件系统过滤驱动

1 引言文件系统过滤概述文件安全性问题已成为当今信息科学领域最重要的课题之一。
目前,解决这个问题的主要技术手段有两种:一是利用应用层HOOK(钩子)技术,对Windows 提供的文件操作函数(API)及由文件操作所触发的Windows消息进行HOOK,经过适当的处理达到预期目的,缺点是效率低、稳定性和一致性差,不适合于大型系统的开发;另一种是开发文件过滤驱动程序,文件过滤驱动作为一种内核态中间层驱动,不需要改变下层驱动或用户程序而增加新的功能,具有效率高、可靠性强、可扩充等特点,成为现阶段信息安全技术研究的热点。
1.1 文件过滤驱动在信息安全领域的应用1 文件加/解密文件过滤驱动程序可以实现对指定文件、目录,甚至整个逻辑盘的加/解密功能。
当文件在写入磁盘的过程中,截获所有对该文件的IRP_MJ_WRITE,在其分发例程中对IRP携带的数据进行加密处理后写入磁盘;文件被从磁盘读取的过程中,截获所有对该文件的IRP_MJ_READ,在其分发例程中对IRP携带的数据进行解密处理后向上层返回。
加密后的文件在磁盘中以密文形式存储,保证了数据存储的安全性。
2 病毒防护应用程序在创建一个新文件或打开一个已存在文件时,文件系统过滤驱动程序截获IRP_MJ_create,判断被打开文件是否存在和病毒特征代码库相匹配的特征,若存在,说明文件感染了病毒,失败掉该IRP,拒绝打开;否则,使IRP继续向下传递,完成正常的打开操作。
3 进程控制为了防止恶意进程的破坏,有时需要规定只允许某些经过安全验证的特定进程对受保护的文件进行访问,其他不在规则范围内的进程不允许访问。
我们可以通过系统提供的PsGetCurrentProcessId、PsGetCurrentThreadId等API函数得到发起I/O请求的进程及线程的相关信息,如:获得发起进程名称,与安全访问规则(进程白名单)中的可信进程相比较,若该进程位于规则中,说明信任其行为是安全的,允许访问受保护文件;否则,拒绝访问。
Windows文件系统过滤驱动开发教程

Windows文件系统过滤驱动开发教程0. 作者,楚狂人自述我感觉Windows文件系统驱动的开发能找到的资料比较少。
为了让技术经验不至于遗忘和引起大家交流的兴趣我以我的工作经验撰写本教程。
我的理解未必正确,有错误的地方望多多指教。
有问题欢迎与我联系。
我们也乐于接受各种驱动项目的开发。
邮箱为MFC_Tan_Wen@,QQ为16191935。
作者是杭州楚狂人,首先在驱动开发网连载.此版本比驱网连载版本稍有修改.除了0外,已发1-8节.后继的章节将在不久后整理推出.您可以随时发邮件向我索取更新的版本.最后更新日期是11月2日.1. 概述,钻研目的和准备我经常在网上碰到同行请求开发文件系统驱动。
windows的pc机上以过滤驱动居多。
其目的不外乎有以下几种:一是用于防病毒引擎。
希望在系统读写文件的时候,捕获读写的数据内容,然后检测其中是否含有病毒代码。
二是用于加密文件系统,希望在文件写过程中对数据进行加密,在读的过程中进行解密。
三是设计透明的文件系统加速。
读写磁盘的时候,合适的cache算法是可以大大提高磁盘的工作效率。
windows本身的cache算法未必适合一些特殊的读写磁盘操作(如流媒体服务器上读流媒体文件)。
设计自己的cache算法的效果,我已在工作中有所感受。
如果你刚好有以上此类的要求,你可以阅读本教程。
文件系统驱动是windows系统中最复杂的驱动种类之一。
不能对ifsddk中的帮助抱太多希望,以我的经验看来,文件系统相关的ddk帮助极其简略,很多重要的部分仅仅轻描淡写的带过。
如果安装了ifsddk,应该阅读src\filesys\OSR_docs下的文档。
而不仅仅是ddk帮助。
文件系统驱动开发方面的书籍很少。
中文资料我仅仅见过侯捷翻译过的一本驱动开发的书上有两三章涉及,也仅仅是只能用于9x的vxd驱动。
NT文件系统我见过一本英文书。
我都不记得这两本书的书名了。
如果您打算开发9x或者nt文件系统驱动,建议你去网上下载上文提及的书。
微文件系统过滤驱动开发指南

Windows文件系统过滤管理器之微过滤器驱动开发指南0.译者序对我来说,中文永远是最美,最简洁,最精确和最高雅的文字。
本文翻译仅仅用做交流学习。
我不打算保留任何版权或者承担任何责任。
不要引用到赢利出版物中给您带来版权官司。
本文的翻译者是楚狂人,如果有任何问题,你可以通过邮箱MFC_Tan_Wen@,或者是QQ16191935,或者是MSN walled_river@与我交流。
我翻译此文出于对文件系统技术的兴趣。
这就是新的文件系统过滤接口。
其实也不算什么新的东西,微软开发了另一个“旧模型的”过滤驱动,称之为过滤管理器(Filter Manager)。
从而提供了一系列新的接口来让你开发新的过滤器。
确实这套接口变简单清晰了。
你至少避免了包含无数个信息的IRP,避免了请求在各个部件中循环的发来发去,一个分发例程中处理无数中情况,一不小心系统崩溃。
我不知道花了多少时间才弄明白一个简单的缓冲读请求从用户到过滤到文件系统和缓冲管理器,虚拟内存管理器之间的关系!现在你也许不需要再管他们了,仅仅做好自己的过滤工作就可以。
这套接口强大吗?能实现你想要的功能吗?你很快就发现你没有研究过sfilter就看不懂Minifilter,或者是还得从sfilter开始做起更灵活一点。
微软就是这样,拿僵硬而且也不简单的东西来“简化”强大灵活但是设计上一团糟的东西,对于你来说是两者都必须学习,最后你的脑子被微软塞得满满的,不过没关系,我们已经习惯了.此文的原文是《Filter Driver Development Guide》,出自微软的网站。
我在以下这个地址下载得到此文: /download/e/b/a/eba1050f-a31d-436b-9281-92cdfeae4b45/FilterDriverDe veloperGuide.doc我尽量在翻译中使文章保持原貌。
如果您认为此文无法理解,建议您首先阅读旧的文件过滤驱动的相关资料。
文件系统驱动和设备驱动的区别 以及介绍

文件系统过滤驱动以及设备驱动的区别一、何谓文件系统过滤驱动?文件系统过滤驱动是一种可选的,为文件系统提供具有附加值功能的驱动程序。
文件系统过滤驱动是一种核心模式组件,它作为Windows NT执行体的一部分运行。
文件系统过滤驱动可以过滤一个或多个文件系统或文件系统卷的I/O操作。
按不同的种类划分,文件系统过滤驱动可以分成日志记录、系统监测、数据修改或事件预防几类。
通常,以文件系统过滤驱动为核心的应用程序有防毒软件、加密程序、分级存储管理系统等。
二、文件系统过滤驱动并不是设备驱动设备驱动是用来控制特定硬件I/O设备的软件组件。
例如:DVD存储设备驱动是一个DVD驱动。
相反,文件系统过滤驱动与一个或多个文件系统协同工作来处理文件I/O操作。
这些操作包括:创建、打开、关闭、枚举文件和目录;获取和设置文件、目录、卷的相关信息;向文件中读取或写入数据。
另外,文件系统过滤驱动必须支持文件系统特定的功能,例如缓存、锁定、稀疏文件、磁盘配额、压缩、安全、可恢复性、还原点和卷装载等。
下面两部分详细的阐述了文件系统过滤驱动和设备驱动之间的相似点与不同点。
1、文件系统过滤驱动同设备驱动的相似点:下列部分描述了Windows操作系统中文件系统过滤驱动和设备驱动之间的相似点:(1)、类似的结构类似于设备驱动,文件系统过滤驱动有着属于自己的DriverEntry、Dispatch和I/O组件例程。
文件系统过滤驱动同设备驱动一样调用许多相同的系统核心例程,它们都会过滤发送给它们所关联的设备的I/O请求。
(2)、类似的功能:文件系统过滤驱动和设备驱动都是I/O子系统的组成部分,因此它们都接收和作用于I/O请求包(IRP)。
类似于设备驱动,文件系统过滤驱动同样可以创建它们自己的IRP并将该IRP发送到低层驱动。
这两种驱动均可以通过注册回调函数来接收多种系统事件的通知。
(3)、其它类似点:同设备驱动类似,文件系统过滤驱动可以接收传入的I/O控制码(IOCTLs)。
Windows 文件过滤驱动经验总结

P 后什么都不做,直接调用 IoCompleteRequest() 来返回。 (2) 拿到这个 IRP 后什么都不做,直接传递到底层设备,
使用IoSkipCurrentIrpStackLocation() 后调用 IoCallDriver() 传递。 (3) 使用 IoBui
ldSynchronousFsdRequest() 或 IoBuildDeviceIoControlRequest()来建立 IRP 的。
Windows 文件过滤驱动经验总结 1、获得文件全路径以及判断时机 除在所有 IRP_MJ_XXX 之前自己从头创建 IRP
发送到下层设备查询全路径外,不要尝试在 IRP_MJ_CREATE 以外的地方获得全路径,因为只有在 IRP_MJ_CREATE 中才会使
用 ObCreateObject() 来建立一个有效的 FILE_OBJECT。而 在 IRP_READ IRP_WRITE 中它们是直接操作
TION 等 IRP 不要去管它,因为它只是一个过程。最终读 写还是如上所介绍。至于以上这些 IRP 哪个是由 CC MGR 发送的,哪些是由
I/O MGR 发送和在什么时候发送的,这个已经有很多讨论了,相 信可以找到。
7、举例说明关于 IRP 传递与完成注意事项 只
看 Walter Oney 的那本 《Programming the Microsoft Windows driver model》里介绍的
其是你要达到一些特殊目的,这时候更需要注意,如 IRP_MN_QUERY_DIRECTORY,不同的标志结果有很大的不同。 3、从
头建立 IRP 获取全路径注意点 自己从头建立一个 IRP_MJ_QUERY_INFORMATION 的 IRP 获取全路径时需要注意,不
基于文件过滤驱动的移动存储介质读写控制

5 0
大
连 民 族 学 院 学
报
第 1卷 3
请求 变成 I P发 给 文件 系统 设 备栈 , R 文件 系统 驱 动 程序把 文件系 统操作 转换 为 响应 的存储 设备 驱
第l 3卷
第 1期
大 连 民 族 学 院 学 报
J u n lo ain Nain l isUnv ri o r a fD l t ai e ies y a o t t
Vo.1 No 1 3, .1
21 0 1年 1月
J n a 2 1 a u ̄ 0 1
文 章 编 号 :0 9—35 2 1 ) 1 0 4 0 10 1X(0 1 0 — 09— 3
收稿 日期 :00— 6— 7 最后 修 回 日期 :0 0— 9— 6 21 0 0; 2 1 0 1
图 1 文件 系统 工 作 原 理
文 件 过 滤 驱 动 程 序 是 针 对 文 件 系 统 驱 动 而 言 。当应用 程 序 读 写 文 件 时 , O 管 理 器 将 这 些 I /
作者 简介 : 米守防 (9 8一) 男 , 17 , 回族 , 山东邹城人 , 工程师 , 主要从 事计算机应用技术研究 。
K e o ds: l y tm l rd rv r rm o a l t r g d a;s c rt yw r i f e s se f t e i e ; e v be so a e me i i e e u iy
近年 来 , 信息 安 全 问题成 为人 们关 注 的焦 点 。 权威 机构 做 的调查 结果显 示 : 超过 8 5% 的安全 威 胁来 自单 位 内部 。而作 为新 一代 取 代软 盘 的移 动 存储设 备 ( U盘 、 动 硬盘 、 动 光 驱 等 ) 因为 如 移 移 , 其使用 灵 活 、 便 , 它在企 业 信息 化 的过 程 中迅 方 使 速得 到普及 , 来 越 多的敏 感 信息 、 密数 据和 档 越 秘 案资料 被存 贮 在 移 动 存 储 介 质里 , 给 企业 信 息 这 资源带 来相 当大 的安 全 隐患 。鉴 于上 述 的安 全 风
过滤驱动来实现文件访问控制

过 滤驱 动 原 理 , 提 出 了利 用 系 统 过 滤 的 方 式 实现 文件 系统 安 全 的 方 案 。 并
【 键词】 过滤驱动 , 关 : 文件 系统 , 问 控 制 访
1 引 言 、
备 栈 中 。 备 栈 是 一 组 设 备 对 象 。 些 设 备 是 相互 关 联 的 。 设 这 任何
_ 制 .这 种 非 常 可 靠 .不 过 要 求 程 序 员 必 须 对 Wid 、 的 系 统 机 23缓 存 管 理 器 n oV S 缓 存管 理器 是一 组 内 核模 式 的 函 数 和 系 统 线 程 .他 们 与 内 制 . 行 流 程 . 个 子 系 统 , 块 等 有 比较 深 的 了解 运 各 模 存 管 理 器 协 同工 作 . 所 有 的 Wid W 文 件 系统 驱 动程 序 ( 地 为 noS 本 2 文 件 系统 驱 动 程 序 结 构 S S 提 文 件 系 统 驱 动 程 序 ( S ) 理 文 件 系 统 格 式 虽 然 F D 运 F D 和 网络 F D) 供 了 数 据 缓 存 的 能 力 FD管 S
随 着 计 算 机 的 大 规模 使 用 及互 联 网 的 日益 普 及 .计 算 机 系 来 自应 用 的 请 求 ,最 终 被 Widw O管 理 器 翻 译 成 i n o sI / r p的 , 总 统 的 安全 问题 越 来 越 受 到 关 注 。 文 件 作 为 计 算 机 数 据 的 载 体 . 是 发送 给 设 备栈 的顶 端 那 个 设 备 。 而
一
r 从 设 备 栈 的 顶 端 开 始 的 . 步 向 下 发 送 。D v o ne p是 逐 eV l l u 为 了 提 高 文件 系统 的安 全 性 . 目前 研 究 比 较 多 的 是 实 现 文 可 见 i 件 访 问控 制 。要 完 全 实 现 对 文 件 访 问 的控 制 , 有 两 种方 法 。 只 第 表 示 我 们 实 际 要 过 滤 的 Vo me设 备 . e T D表 示 这 个 设 备 栈 l u D vo 那 种 是通 过 Wid W 提供 的 A I 数 来 实 现 .这 种 方 法 比较 容 的顶 端 我 们 只 要 在 这 个 设 备 栈 的 顶 端 再 绑 定 一 个 设 备 . 发 送 nO S P 函 o n u e的 请 求 . 自然会 先 发 给我 们 的 设 备 来 处 理 。 易 . 是 存 在 着致 命 的缺 陷 。 二 种 方 法 则 是 利 用 系统 驱 动 的 机 给 V li 但 第
基于文件过滤驱动的病毒防范方法的实现

( 1 . De p . o f N e t w o r k , E l e c t r o n i c E n g i n e e r i n g I n s t i t u t e o f He f e i , He f e i 2 3 0 0 3 7 , C h i n a ;
基 于文件 过滤驱 动 的文件 型病毒 防 护方法 。分 析 了文件 过滤 驱 动 原理 , 通 过 在文 件 系统 驱 动上 层 附加 一 层 过滤 驱 动 , 来 截 获上层 应用 对文件 的各 种操 作 , 阻 止可 疑应用 程序 对 可执 行 文件 的写操 作 , 达 到 主动 防 御文 件 型病 毒 的 目的。文 章从
陈建 熊 , 揭 摄 , 张 鑫
( I . 合肥 电子 工程 学 院 网络 系 , 安徽 合肥 2 3 0 0 3 7 ;
2 . 武警合 肥指挥 学院 院务部 , 安徽 舍 肥 2 3 0 0 3 1 )
摘 要: 计 算机 病毒 给 当今 社会 造成 了较 大危 害 , 为 了有 效 防止 病 毒蔓 延 , 针 对 当前 防病 毒 软件 存 在 的不 足 , 给 出 了一种
2 . D e p .o f L o g i s t i c s , He f e i C o mma n d C o l l e g e o f A r me d P o l i c e , He f e i 2 3 0 0 3 1 , C h i n a )
Ab s t r a c t : Co mp u t e r v i r u s i s h a r mf ul t O s o c i e t y. I n v i e w o f t h e d e f e c t o f t h e v i r u s d e t e c t i o n me ho t d e x i s t i n g, a n e w me t h o d o f v i us r p r e - v e n t i o n ba s e d o n il f e s y s t e m i f l er t d r i v e r i s b r o u g h t f o r wa r d O t p r e v e n t c o mp u t e r v i r u s p r o p a g a io t n. An a l y z e he t he t o r y o f il f e s y s t e m il f t e r d r i v e r . Wi h t a t t a c h i n g a il f t e r d r i v e r O t he t il f e s y s t e m d r i v e r O t o b t a i n u p p e r a p p l i c a t i o n o p e r a t i n g o n he t il f e o f he t d i s k, c a n p r e v e n t S U S - p i c i o u s a p p l i c a t i o n p r o g r a m t o wr it e o n e x e c u t a b l e il f e . Th u s i mp l e me n t he t im a o f a c t i v e d e f e n s e o f t h e c o mp u t e r v i r u s . P r e s e n t t h e d e t a i l i mp l e me n at t i o n o f t hi s me t h o d wi t l l o p e n i n g, wr it i n g, c l o s i n g he t e x e c u t a b l e il f e b y v i us r nd a c o mmu t a i t o n b e t we e n a pp l i c a t i on nd a d r i v — e r . Th e es r u l t i n d i c a t e s ha t t hi t s me ho t d C n a p ev r e n t he t c o mp u t e r v i us r s p r e a d i n g e ic f i e n t l y . Ke y wo r d s : il f e s y s t e m il f t e r d i r v e r ; c o mp u er t v i r u s ; a c t i v e d e f e n s e
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
被动加密
使用者并不知道或者并不想文件变成加 密状态,系统自动将文件加密,称之为 被动加密。
类型和逻辑
1、加密指定后缀: 通过指定后缀加密是指保密程序对生成的某一类文档进行加密,而
对其他后缀仍然采用明文。其优点是只加密制定类型的文档,而不影响其 它文件,在加密范围上相对较小,系统的稳定性容易提高;缺点是可能产 生“另存为其他类型的文档”的泄密漏洞,因为此时存储的结果并不是被指 定加密的文件类型。即使把程序可能产生的后缀格式都指定也没有用,因 为有很多办法另存出来 ,例如在Word中可以点击另存为然后在文件名栏输 入2个双引号(“),然后在这2个双引号之间输入任意后缀(例如test.123),那么 保存后的文件就是明文的,拷贝出来文件名改回doc后缀就可能导致文档 泄密。
分发函数
主功能IRP
DriverObject->MajorFunction[IRP_MJ_FILE_SYSTEM_CONTROL] = FsControl; DriverObject->MajorFunction[IRP_MJ_DIRECTORY_CONTROL]= DispatchDirectoryControl; DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate; DriverObject->MajorFunction[IRP_MJ_READ] = DispatchRead; DriverObject->MajorFunction[IRP_MJ_WRITE] = DispatchWrite; DriverObject->MajorFunction[IRP_MJ_SET_INFORMATION] = DispatchSetInfo; DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchClose; DriverObject->MajorFunction[IRP_MJ_CLEANUP] = DispatchClean; DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchDeviceIoControl;
#define CdMapUserBuffer(IC, UB) { \ *(UB) = (PVOID) ( ((IC)->MdlAddress == NULL) ? \ (IC)->UserBuffer : \ (MmGetSystemAddressForMdlSafe( (IC)->MdlAddress, HighPagePriority))); \
读写过滤
读操作
文件的长度: Length = IrpSp->Parameters.Read.Length;
文件的偏移量: Offser.QuadPart = IrpSp->Parameters.Read.ByteOffset.QuadPart
文件内容: Irp-> MdlAddress不为空,则使用Irp-> MdlAddress,缓冲区位置为MmGetSystemAddressForMdlSafe(Irp-> MdlAddres),否则直接使用Irp-> UserBuffer
类型和逻辑
加密指定后缀
加密不区分后缀
重定向原理
重定向原理+加密指定后缀(1)
重定向原理+加密不区分后缀(2)
透明加解密原理
动态加解密原理+加密指定后缀(3)
动态加解密原理+加密不区分后缀(4)
基本流程
读流程
基本流程
写流程
基本数据结构
FileObject,打开一个文件,io 管理器为其创建一个文件对象 结构 FCB,一个文件可能被多个程 序同时打开,这样会生成多个 FileObject,但是只存在一个 FCB 段对象指针
学习曲线
驱动层
文件过滤驱动
பைடு நூலகம்应用层
Windows系统 Windows开发
C/C++ MFC机制 COM机制 进程、线程、内存管理 PE文件格式、SHE机制 HOOK技术、反汇编 。。。
文件系统 进程、线程、内存机制 核心数据结构 。。。 驱动开发 缓存管理 文件头标识存放 密钥、策略管理 读写加解密处理 。。。
透明加解密开发
透明加解密发展
驱动开发特点
调试困难
不能采用VC直接调试,单机调试比较困难,必须采用 windbg双机调试(Windbg + Vmare) 定位问题困难,编程出错容易照成蓝屏,后果比较严重
编程模式
编程资料较少,微软提供接口和文档很少,经常需 要反汇编、逆向 在Ring0 特级运行,权力很大,代码安全要求比较 高
稳定周期较长 兼容性测试最重要(各种防火墙软件、防病毒软件、主动 防御软件、Rookit技术软件等等) Windows操作系统的升级导致驱动不能平滑过渡( win98/wind2000/winxp/vista/windows 7)
周期长
驱动开发
字符串操作 进程空间、线程上下文 内存分配 线程互斥访问 数据结构(双链表) 中断优先级 DeviceObject、DriverObject Irp理解
大纲
驱动开发简介
开发特点 开发要素 基本概念 分发函数 设备绑定 读写过滤 文件路径获取
文件过滤驱动
透明加解密简介
概念 类型和逻辑 流程 基本数据结构 重要技术难点 怎样开发透明加解密程序 开发参考框架代码,Sfilter、Filemon、Filespy、toolflat的代码 微过滤驱动Minifilter架构 开发工具小集合 DSM 透明加解密技术
文件过滤驱动 FSFilter
引言
文件系统程序是操作系统核心的部分,对 于Windows操作系统来讲,文件系统和网 络部分并列为驱动程序中最难的部分,难 度大大超过声卡、显卡之类的硬件驱动程 序。 深入学习和调试文件驱动程序,文件过滤 驱动程序,更有助于学习Windows系统底 层核心技术。 本胶片主要介绍文件过滤驱动开发和其应 用:透明加解密,胶片内容比较广泛,希 望能够普及这方面的知识,希望更多有兴 趣的人一起研究,一起进步。
而且有些程序的文件格式没有定式,甚至可以保存为任意后缀,例如记 事本,这样加密指定的文件后缀就带来了安全漏洞。
2、加密不区分后缀: 加密不区分后缀是指保密程序对生成的所有文件都进行加密。这种加密
方式由于对指定进程产生的任何文件都加密从而堵住“另存为其他类型的文档” 的漏洞,可保证不论用户如何将文件另存都不会出现明文文件。其工作原理为指 定进程只要发生写操作就加密被写的文件,任何中间文件和临时文件都会被加密 。不区分文件后缀有更高的安全性,技术难度也大得多。
类型和逻辑
加密类型
静态加密 动态加密
加密原理
把整个文件加密掉、或者把整个文件加 密掉。 文件整体是加密状态,需要解密时读取 多少就解密多少,写入多少就加密多少 ,而不需要把整个文件都解密掉。 由使用者自行要求文件变成加密状态称 之为主动加密
举例
主动加密
主动加密的方式很多,例如用WinRar 把文件压缩并定义一个口令,或者给 Word、Excel文件一个打开或者修改的 口令,这样其他人使用时必须由正确的 口令才能打开,这是使用者主动进行的 加密,如果使用者不进行加密则文件不 会在加密状态。只针对某些文件夹加密 的方式也可以理解为主动加密方式。主 动加密主要应用于个人的文件保护。 被动加密主要用于企业内部防止文件泄 密,即使使用者不想文件被加密,系统 还是会根据定义加密文件,这样文件被 拷贝等各种方法脱离企业环境后,由于 文件在加密状态而无法打开。被动加密 具有另一个特性就是透明操作,即使用 者并不需要进行加密和解密操作,一切 都是后台自动完成,使用者可以不知道 加密的存在。被动加密与作者的意愿无 关,相关文件都会被加密,磁盘加密和 文件透明加解密属于此类。
文件过滤驱动
1. 2. 3. 4. 5.
基本概念 分发函数 设备绑定 读写过滤 文件路径获取
基本概念
卷,有卷管理器生成,一个卷一般对 应一个逻辑盘
文件系统 NTFS:ntfs.sys FAT32:fastfat.sys CDFS:cdfs.sys
1.
2.
3.
文件系统拥有两类设备:控制设 备,卷设备。 如C:、D:为ntfs,E:F:为 FAT32,那么E:、F:为FAT32 文件系统的两个卷设备,而C: 、D:为NTFS文件系统的两个 卷设备 文件操作针的irp都是发到卷设备 上,发给控制设备的irp主功能号 为 IRP_MJ_FILE_SYSTEM_CONT ROL,发给卷设备的irp一般都是 文件操作irp
FAstIO 注册这些函数后,一般不做任何处理直接返回 快速IO主要是当文件数据存在缓存里面时,windows为了提高性能,直接向缓存管理器放送快速io 去缓存获取数据
设备绑定
创建控制设备对象,对象类型必须FILE_DEVICE_DISK_FILE_SYSTEM 调用IoRegisterFsRegistrationChange,注册文件系统激活或者卸载的回 调函数,文件系统常用的为ntfs、fat32、cdfs,默认情况下,文件系统是存在 的,没有触发激活机制,这时候在xp和windows 2000 sp4以上,仍然会触发 调用注册的回调函 生成设备附加到文件系统上,这样能监控到文件系统的irp,主要是监控 此irp IRP_MJ_FILE_SYSTEM_CONTROL,在此irp中监控卷的挂载和卸载 在卷的挂载过程中,生成设备附加到卷上,这样才完成设备的附加,做 完此操作后,就能监控到所有卷上的文件操作irp