阅读:7849回复:32
真正的文件透明加密,可以实现整盘加密,不基于目录,包括word
1 使用filedisk虚拟一个盘符,这个盘必须大于r
例如 filedisk /mount 0 d:\\1.img 10M x: 2 执行filemon文件,选择你的那个盘比如x: 3 然后就可以对这个盘操作,我加密是减一,解密为加一。可以做到整盘加密的,不用目录加密 4 注意事项 如果要看文件是否加密了,那你必须把这个映像文件拷贝一份,然后重起动,把那个拷贝的映像文件挂接一个盘,你就会看到这些文件的内容都是减一的。如果你这时在挂接filemon,那么就会出问题,因为系统已经把这些文件读入缓存中了,所以我让你要拷贝的原因,具体的原因,我也是猜得, 5 有点小问题 就是加密rar文件大的时候,有时候会出现最后一个错误,但不影响解压缩的 6 你们使用有什么问题可以给我发 7 对于安全问题,你们放心,我改了filemon应用程序,让盘号大于r才可以挂的。所以你要虚拟个盘阿 谢谢大家阿,等我测试完了,我把代码发了 |
|
最新喜欢:ljmmar... |
驱动老牛
|
沙发#
发布于:2005-03-15 21:50
你到底是在文件系统里做得还是在磁盘一级做得啊
在磁盘一级做OFFICE当然没问题了,只需要处理READ WRITE即可。地球人都知道。当然这样只能加密整个磁盘或分区。 文件系统过滤里必须实现 READ WRITE RENAME 如果你在文件系统里做得,我实在想不通你不处理RENAME就可以加解密WORD。 你是在fsfilter里做的么?可不可以把代码SHARE一下... |
|
驱动老牛
|
板凳#
发布于:2005-03-15 21:52
你是通过挂 harddiskvolumeN吧,那怪不得...
|
|
地板#
发布于:2005-03-15 22:14
是该得FILEmon,不是磁盘一级的,那个很简单,不用filedisk也可以的,只是现在测试防止意外。代码还不完善阿,我怕贴出来害大家,所以要先测试
|
|
地下室#
发布于:2005-03-15 22:21
代码贴出来,最好有文档,我们帮你一起测试修改.....
|
|
|
5楼#
发布于:2005-03-15 22:29
终于见到wowocock专家了,我猜可能是读写数据太大了会有些数据没有解密,主要是rar文件,但是不影响使用,就是几个字节
|
|
6楼#
发布于:2005-03-16 09:40
可以帖出来。大家一起改。
|
|
|
7楼#
发布于:2005-03-17 10:00
是啊,贴出来大家一起完善它。
|
|
|
8楼#
发布于:2005-03-17 11:12
office加密这里讨论的太多了,好像一直没有很好的解决方法。
你还是把你的思路说一下,看看到底能不能work。 |
|
|
9楼#
发布于:2005-03-17 21:55
word加密可以的,你可以看看我的那个驱动,肯定没有问题,我测试了很多机器了。原理就是不要处理缓存
我猜可能是读写数据太大了会有些数据没有解密,主要是rar文件 这个问题我解决了,是读写个数判定不完善。 加密最重要一店,不要处理缓存。否则会有很多问题。这是我偶然发现的,其实刚开始我也去用ccflushcache,结果出现很多问题,其实操作系统自己会管理好缓存的,没有缓存是不可能的。 [编辑 - 3/17/05 by gongbin_net] |
|
10楼#
发布于:2005-03-18 09:25
我也是最近搞定的透明加解密,原型用的是filemon,而且利用ccflushcache处理的 缓存,加密采用流加密算法 ,现在用的很好啊,没有任何问题,能够加密包括word,rar在内的所有类型的文件,不知道楼主为什么处理缓存有问题呢?说出来大家讨论讨论吧
|
|
11楼#
发布于:2005-03-18 17:26
我市没有处理缓存的,有时候处理缓存会出现一点问题,比如打开新建的word,会有缓存的东西,可能是我处理不当吧,不知道你如何处理的,可不可以把你的思路说一下,不处理缓存加密也没有问题的。用ccflushcache好像无法处理映射的文件的。
楼主的缓存在那里处理的,在irp_CLEANUP吗. 缓存处理不是简单的使用ccflushcache,和CcPurgeCacheSection就可以了,还有很多的阿比如CcUnpinData,你考虑了吗,CcUnpinDataForThread等等。 其实你处理了缓存会影响性能的,下次打开时又要去从磁盘读数据。 我说的可能很片面。不好意思。 [编辑 - 3/18/05 by gongbin_net] |
|
12楼#
发布于:2005-03-18 17:28
你用的什么加密算法阿,我想换换我以前的那个。
|
|
13楼#
发布于:2005-03-19 09:33
其实我在这方面也没有什么经验,这段时间全靠在这个论坛上看别人的帖子和参与讨论,关于缓存的问题其实你说的对,每次将数据重新刷回磁盘存在效率低下的问题,但考虑到安全性问题的时候,可能需要牺牲一点吧。
我采用的是基于目录的加密,也就是整个目录中的文件进行加密,因此word文档的重命名问题比较好解决,刷缓存就是在处理IRP_MJ_CLOSE中调用ccflushcache等函数的,没有特别的处理,目前测试使用良好,还没有遇到什么问题,但不能保证完全没有问题。 加密算法采用流加密RC4,不需要处理文件长度变化的问题,正在考虑采用块加密算法,不过问题还很多 :) |
|
14楼#
发布于:2005-03-19 12:54
其实我在这方面也没有什么经验,这段时间全靠在这个论坛上看别人的帖子和参与讨论,关于缓存的问题其实你说的对,每次将数据重新刷回磁盘存在效率低下的问题,但考虑到安全性问题的时候,可能需要牺牲一点吧。 只要你保证缓存中总是明文,你可以不用直接处理缓存,你可以参考以下我的这篇帖子: http://www.driverdevelop.com/forum/html_88826.html?1111208024 |
|
15楼#
发布于:2005-03-19 13:48
处理不好缓存,对数据一致性有影响的
|
|
16楼#
发布于:2005-03-19 13:53
joshua_yu
谢谢你阿,以后多交流,我现在改作网络虚拟存储了。需要scsi不知你有何经验阿。不用filedisk了。不要文件影像实现网络虚拟盘。我的qq号,79669866。 |
|
17楼#
发布于:2005-03-19 22:39
请问楼主,你这个能够区分那些是加过密的文件,哪些是未加密文件吗 |
|
18楼#
发布于:2005-03-20 09:44
这个我好像没有处理过,因为我是整盘加的,如果要那样的话,可能试一下在文件头增加标志阿,改变文件大小,你处理过吗,给我说说阿,
|
|
19楼#
发布于:2005-03-21 08:46
关于给文件加标示我也在考虑,可是发现如果需要修改文件的长度很麻烦,目前考虑有两种方案:
1)我们将自己添加的文件标识保存在文件的头部,用户读文件的时候(过滤驱动)将整个文件读出,判断文件标识,然后将有效内容返回给用户,可是这样就会出现用户期望读取的长度大于系统返回给它的长度的问题,我试验过,导致打开的文件最后部分有一些空格。 2)过滤驱动屏蔽文件长度的变化,如果文件原来长为a,加标识以后变为b,我们需要想办法让上层认为文件长度还是a。系统好像是通过NtQueryInformationFile和NtSetInformationFile来查询和修改文件信息的,当然还可能有其它的方式,所以想要完全拦截系统对文件长度的查询是很困难的。 不知道各位队上述两种方案的实现有什么好办法或者还有什么其它修改文件长度的方案吗? 另外,请问一下gongbin_net,对于卷中的系统文件你是怎么处理的,是否全部进行加解密,还是进行过滤? [编辑 - 3/24/05 by joshua_yu] |
|
上一页
下一页