2008年6月28日

文件过滤系统驱动开发Filemon学习笔记

摘要: WINDOWS文件过滤系统驱动开发,可用于硬盘还原,防病毒,文件安全防护,文件加密等诸多领域。而掌握核心层的理论及实践,对于成为一名优秀的开发人员不可或缺。WINDOWS文件过滤系统驱动开发的两个经典例子,Filemon与SFilter,初学者在经过一定的理论积累后,对此两个例子代码的研究分析,会是步入驱动开发殿堂的重要一步,相信一定的理论积累以及贯穿剖析理解此两个例程后,就有能力开始进行文件过滤... 阅读全文

posted @ 2008-06-28 20:58 jasonCao 阅读(886) 评论(0) 推荐(0) 编辑

Windows平台内核级文件访问

摘要: Windows平台内核级文件访问作者:baiyuanfan (baiyuanfan@163.com)日期:2.1,20061.背景在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,读写文件。从kernel32的CreateFile/ReadFile/WriteFile函数,到本地系统服务,再到FileSystem及其FilterDriver,经历了很多层次。在每个层次上... 阅读全文

posted @ 2008-06-28 20:56 jasonCao 阅读(523) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(11)

摘要: 11.文件和目录的生成打开,关闭与删除 我们已经分析了读,写与读类似。文件系统还有其他的操作。比如文件或目录的打开(打开已经存在的或者创建新的),关闭。文件或目录的移动,删除。 实际上FILE_OBJECT并不仅仅指文件对象。在windows文件系统中,目录和文件都是用FileObject来抽象的。这里产生一个问题,对于一个已经有的FileObject,我如何判断这是一个目录还是一个文件呢? 对于... 阅读全文

posted @ 2008-06-28 20:53 jasonCao 阅读(614) 评论(0) 推荐(1) 编辑

Windows文件系统过滤驱动开发教程(10)

摘要: Windows文件系统过滤驱动开发教程 注: 有任何问题与建议请加QQ16191935,邮箱MFC_Tan_Wen@163.com 工作忙,好久没有来过了,请大家谅解。 10 自己发送Irp完成读请求 关于这个有一篇文档解释得很详细,不过我认为示例的代码有点太简略了,这篇文档在IFS所附带的OSR文档中,请自己寻找。 为何要自己发送Irp?在一个文件过滤驱动中,如果你打算读写文件,可以试用ZwRe... 阅读全文

posted @ 2008-06-28 20:53 jasonCao 阅读(857) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(9)

摘要: Windows文件系统过滤驱动开发教程 注: 有任何问题与建议请加QQ16191935,邮箱MFC_Tan_Wen@163.com 9 完成读操作 除非是一个完整的文件系统,完成读操作似乎是不必要的。过滤驱动一般只需要把请求交给下层的实际文件系统来完成。但是有时候比如加解密操作,我希望从下层读到数据,解密后,我自己来完成这一IRP请求。 这里要谈到IRP的minor function code.以... 阅读全文

posted @ 2008-06-28 20:52 jasonCao 阅读(573) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(8)

摘要: Windows文件系统过滤驱动开发教程 注: 有任何问题与建议请加QQ16191935,邮箱MFC_Tan_Wen@163.com 8 终于绑定了Volume,读操作的捕获与分析 上文已经讲到绑定Volume之前的关键操作.我们一路逢山开路,逢水架桥,相信你从中也学到了驱动开发的基本方法.以后的工作,无非灵活运用这些方法而 已.前边已经举出过绑定FS CDO的操作.那么现在绑定Volume,无非照... 阅读全文

posted @ 2008-06-28 20:52 jasonCao 阅读(508) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(7)

摘要: Windows文件系统过滤驱动开发教程 7.IRP完成函数,中断级,如何超越中断级别的限制 先讨论一下Volumne设备是如何得到的.首先看以下几个函数: // ------------------wdf.h 中的内容 ------------------------- typedef VPB wd_vpb; _inline wd_vpb * wd_dev_vbp(wd_dev *dev) { r... 阅读全文

posted @ 2008-06-28 20:50 jasonCao 阅读(691) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(6)

摘要: Windows文件系统过滤驱动开发教程 6.IRP的传递,File System Control Dispatch 我们现在不得不开始写dispatch functions.因为你的设备已经绑定到文件系统控制设备上去了。windows发给文件系统的请求发给你的驱动。如果你不能做恰当的处理,你的系统的就会崩溃。 最简单的处理方式是把请求不加改变的传递到我们所绑定的设备上去。如何获得我们所绑定的设备?... 阅读全文

posted @ 2008-06-28 20:50 jasonCao 阅读(599) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(5)

摘要: Windows文件系统过滤驱动开发教程 5.绑定FS CDO,文件系统识别器,设备扩展 上一节讲到我们打算绑定一个刚刚被激活的FS CDO.前边说过简单的调用wd_dev_attach可以很容易的绑定这个设备。但是,并不是每次my_fs_notify调用发现有新的fs激活,我就直接绑定它。 首先判断是否我需要关心的文件系统类型。我用下面的函数来获取设备类型。 // --------... 阅读全文

posted @ 2008-06-28 20:49 jasonCao 阅读(758) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(4)

摘要: Windows文件系统过滤驱动开发教程 4.设备栈,过滤,文件系统的感知 前边都在介绍文件系统驱动的结构,却还没讲到我们的过滤驱动如何能捕获所有发给文件系统驱动的irp,让我们自己来处理?前面已经解释过了设备对象。现在来解释一下设备栈。 任何设备对象都存在于某个设备栈中。设备栈自然是一组设备对象。这些设备对象是互相关联的,也就是说,如果得到一个DO指针,你就可以知道它所处的设备栈。 ... 阅读全文

posted @ 2008-06-28 20:49 jasonCao 阅读(604) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(3)

摘要: Windows文件系统过滤驱动开发教程 3.分发例程,fast io 上一节仅仅生成了控制设备对象。但是不要忘记,驱动开发的主要工作是撰写分发例程(dispatch functions.).接上一接,我们已经知道自己的DriverObject保存在上文代码的driver中。现在我写如下一个函数来指定一个默认的 dispatch function给它。 //---------------... 阅读全文

posted @ 2008-06-28 20:48 jasonCao 阅读(710) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(2)

摘要: Windows文件系统过滤驱动开发教程 2.hello world,驱动对象与设备对象 这里所说的驱动对象是一种数据结构,在DDK中名为DRIVER_OBJECT。任何驱动程序都对应一个DRIVER_OBJECT.如何获得本人所写的 驱动对应的DRIVER_OBJECT呢?驱动程序的入口函数为DriverEntry,因此,当你写一个驱动的开始,你会写下如下的代码: NTSTATUS D... 阅读全文

posted @ 2008-06-28 20:47 jasonCao 阅读(1094) 评论(0) 推荐(0) 编辑

Windows文件系统过滤驱动开发教程(0,1)

摘要: Windows文件系统过滤驱动开发教程 0. 作者,楚狂人自述 我长期网上为各位项目经理充当“技术实现者”的角色。我感觉Windows文件系统驱动的开发能找到的资料比较少。为了让技术经验不至于遗忘和引起大家交流的兴趣我以我的工作经验撰写本教程。 我的理解未必正确,有错误的地方望多多指教。有问题欢迎与我联系。我们也乐于接受各种驱动项目的开发。邮箱为MFC_Tan_Wen@163.com,... 阅读全文

posted @ 2008-06-28 20:46 jasonCao 阅读(1965) 评论(0) 推荐(0) 编辑

Windows 文件过滤驱动经验总结(转)

摘要: 看了 ChuKuangRen 的第二版《文件过滤驱动开发教程》后,颇有感触。我想,交流都是 建立在平等的基础上,在抱怨氛围和环境不好的同时应该先想一想自己究竟付出了多少? 只知索取不愿付出的人也就不用抱怨了,要怪也只能怪自己。发自己心得的人无非是两种 目的,一是引发一些讨论,好纠正自己错误的认识,以便从中获取更多的知识使自己进步 的更快。二是做一份备忘,当自己遗忘的时候能够马上找到相关资料。我这里... 阅读全文

posted @ 2008-06-28 20:46 jasonCao 阅读(598) 评论(0) 推荐(0) 编辑

导航