FileSpy源码分析
OK,新年第一帖,祝各位新年快乐呀。
标题太短,不能明确的说明我写了什么,所以下面给出了原文中的一段话,较详细的介绍了我到底
写了什么,以便让大家有个总览。要是觉得有用,就看,没用就别浪费时间,唉,时间真的很宝贵
呀!
原文:
首先强调一下我分析的FileSpy的版本,是Windows Sever 2003的IFS中
的,这里也顺便给一个下载地址,以方便感兴趣的朋友
(http://www.kuaipan.cn/index.php?ac=f...83120169959482,密码:WlXLlL)。
OK,现在正式步入正题。首先从总体上说说我在这里要写的内容,我在这里并没有去讲整个程
序,而是只说IRP的处理。Why?因为在我眼里FileSpy的真正有价值的就是在IRP的处理中涉及到
的东西,如果你对文件系统过滤驱动了解一些,也许就能猜到我要写什么,其实我就是讲了一个文
件过滤驱动中常常用到的技巧的一个实际的应用。什么技巧?借用《寒江独钓》中的一段话就是:
在打开文件时获得文件的信息并保存起来,然后在其他时候使用这些信息,最后在文件被关闭
时删除这些信息。
也许看起来很简单,但其实里面还是有很多细节上的东西需要好好处理的,至于为什么这样做,我
在这里就不多说了,有兴趣的朋友可以参考《寒江独钓》第203页。言归正传,其实在FileSpy中
作者给了两种实现方法:利用哈希表和利用per-stream context。前者是一种适合于任何
版本的Windows的方法,而后者只能XP(包括XP)之后,而我在这里只分析后者(因为我只看了这
个:(),即利用per-stream context。,至于该程序的其他模块,如设备对象的
attache ,各位可以参考其他书,如《寒江独钓》。OK,到这里各位应该对我要写什么很清
楚了,你可以选择离开 or go on :).
