xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2755回复:13

NTFS下文件过滤驱动加密点判断条件

楼主#
更多 发布于:2007-03-05 17:31
  我看了各位前辈的贴子,说在sfWrite和sfRead判断时候只需要判断Irp->Flags为IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO这三种情况.FAT32下一切正常.
但在NTFS下 sfRead是正确的,但sfWrite不正确,产生的IRP都是IRP_DEFER_IO_COMPLETION类的.
请问各位大牛碰到过这种情况吗.这个问题困扰我两星期了,如果有谁能给予帮助,将不胜感激,也可以付出一定的经济感谢.我的电子邮件是 xmzhou@hfzs.net.
BTW,我现在控制的是WORD和EXCEL的读写加密.
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2007-03-28 14:21
没有人碰到相同的问题吗,如果有解答的话,将不胜感激.
luckyshow00
驱动牛犊
驱动牛犊
  • 注册日期2007-03-12
  • 最后登录2008-11-24
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望36点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-28 15:58
确实只需要判断Irp->Flags为IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO这三种情况,我做的也是word和excel加密,应该是你的write函数有问题,我的在ntfs下没问题,fat32我还没试过,
多看看以前的帖子
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-04-04 18:13
感谢楼上的回复.我现在WORD在NTFS下是没有问题了,可EXCEL在NTFS下仍然只能得到IRP_DEFER_IO_COMPLETION的写请求.哎,继续摸索.
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
地下室#
发布于:2007-04-05 08:56
只处理IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO肯定没有问题,
你不用管IRP_DEFER_IO_COMPLETION,最终系统肯定会产生迟延写动作,IRP标志肯定是
IRP_NOCACHE,IRP_PAGING_IO,IRP_SYNCHRONOUS_PAGING_IO 这三种组合其一。
人总在矛盾中徘徊。。。
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2007-04-05 09:35
引用第4楼devia2007-04-05 08:56发表的“”:
只处理IRP_NOCACHE | IRP_PAGING_IO | IRP_SYNCHRONOUS_PAGING_IO肯定没有问题,
你不用管IRP_DEFER_IO_COMPLETION,最终系统肯定会产生迟延写动作,IRP标志肯定是
IRP_NOCACHE,IRP_PAGING_IO,IRP_SYNCHRONOUS_PAGING_IO 这三种组合其一。


谢谢你的回复.我还想询问一下细节.延迟写后产生的IRP是在原来的FileObject上产生的,还是重新创建了一个不同的FileObject,如果是重新创建的,那是由哪个进程创建的.
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
6楼#
发布于:2007-04-05 10:09
对于加解密来说你关心的是FILE,而不是FILE INSTANCE
人总在矛盾中徘徊。。。
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
7楼#
发布于:2007-04-05 11:09
引用第6楼devia2007-04-05 10:09发表的“”:
对于加解密来说你关心的是FILE,而不是FILE INSTANCE


是这样的,我的要求可能和你们的不太相同.我是只对特定的应用程序的读写操作进行加解密.
比如说WORD或者EXCEL,这样就必须知道是哪个应用程序在操作文件,所以我关心的是
FILE INSTANCE
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
8楼#
发布于:2007-04-05 13:22
这种应用是有问题的,比如说:1.DOC对A.EXE是需要解密的,而对B.EXE是不需要解密的,
那么当1.DOC被A.EXE打开的时候,1.DOC会被CACHED,且为明文,如果后续B.EXE也
尝试打开1.DOC,那么得到的极有可能是CACHE中的明文。
人总在矛盾中徘徊。。。
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
9楼#
发布于:2007-04-05 13:52
引用第8楼devia2007-04-05 13:22发表的“”:
这种应用是有问题的,比如说:1.DOC对A.EXE是需要解密的,而对B.EXE是不需要解密的,
那么当1.DOC被A.EXE打开的时候,1.DOC会被CACHED,且为明文,如果后续B.EXE也
尝试打开1.DOC,那么得到的极有可能是CACHE中的明文。


我现在的处理是在IRP_MJ_CLOSE事件中清除CACHE内容.
xmzhou_98
驱动牛犊
驱动牛犊
  • 注册日期2005-10-05
  • 最后登录2018-02-12
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望80点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
  • 社区居民
10楼#
发布于:2007-04-10 10:04
再顶一下.期待各位大牛给予帮助
psj35
驱动牛犊
驱动牛犊
  • 注册日期2008-10-23
  • 最后登录2011-03-15
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望43点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2009-07-21 10:51
先收藏了  
sunnyhrbeu1119
驱动牛犊
驱动牛犊
  • 注册日期2009-04-13
  • 最后登录2010-07-09
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望81点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2009-08-13 10:50
回 楼主(xmzhou_98) 的帖子
楼主,刚看到这个帖子,我现在也正在研究文件透明加密,并且需求与你的一样,现在对记事本操作很正常,office类的文档却总有问题,花了好几周时间也没解决掉,麻烦楼主能给予指导指导,小妹在此感激不尽,谢谢!我QQ532521827
amazingzyx
驱动牛犊
驱动牛犊
  • 注册日期2009-03-06
  • 最后登录2010-01-19
  • 粉丝0
  • 关注0
  • 积分18分
  • 威望181点
  • 贡献值2点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2009-10-09 17:33
请问各位大牛:
文件过滤驱动在对记事本进行透明加解密时,根本过滤不到读请求,其采用的是文件映射的方式访问文件。
那么,清缓存、读请求时解密这两点是怎样实现呢?
非常感谢。
游客

返回顶部