阅读:2329回复:4
关于加密FILTER驱动的2个问题
好象做加密FILTER的兄弟不少,从大家提的一些问题来看大多是新手,为了大家少走弯路就我的经验对2个基本问题作些解释(我只讲本地文件,网络不适用):
1.加解密位置:在内存和硬盘进行页面交换时.即带有IRP_PAGING_IO |IRP_SYNCHRONOUS_PAGING_IO标志在读和写时加解密,其它地方都不用管.内存中的数据必须是明文,不然肯定有问题 2.文件的判断:很多人都通过求文件名来判断是否是加密文件,但很多时候没有文件名.于是用FIlEMON的方法通过FILE_OBJECT比较求得.这种方法是不行的,会漏掉一些IRP.可行的方法是通过FCB的比较来判断,但这会有FCB重用的问题,不是太容易解决. |
|
最新喜欢:![]()
|
沙发#
发布于:2003-01-20 07:30
补充说明:
文件打开可以使用缓冲或不使用缓冲,上面说的是使用缓冲的情况,不不使用缓冲时(FileObject->Flags&FO_NO_INTERMEDIATE_BUFFERING)的读/写当然也应该解/加密 |
|
|
板凳#
发布于:2003-01-18 10:51
谢谢!
现在才明白你的话,看来我真是太笨了。回去好好看书。 |
|
地板#
发布于:2003-01-18 00:48
好象做加密FILTER的兄弟不少,从大家提的一些问题来看大多是新手,为了大家少走弯路就我的经验对2个基本问题作些解释(我只讲本地文件,网络不适用): 首先,谢谢sijun的宝贵经验,但我有个问题:假如来了个带Write_Through(写穿透)标志的IRP_MJ_WRITE,这个还需要加密吗? |
|
地下室#
发布于:2003-01-08 11:31
但种情况下在IRP_MJ_READ取不到文件名???
我好像都可以呀!!!! |
|