现在一个项目里有个模块需要从驱动层文件过滤,进行加解密,例如:监控所有的word文件和excel文件,保存的时候加密文件,假设文件后面加个字符串"hello",打开的时候解密文件,先去掉文件后的字符串"hello",然后让word打开最好不用FindFirstChangeNotification这些方法,想着过滤大概应该用FileMon的方法,但是当FileMon监控打开和保存的时候文件会不会被保护,不知道这时能不能加解密文件;FileMon的代码太苦涩,看了一些,头昏眼花;如果有人已经做过类似的工作了,非常高兴,也愿意出些人民币交换,不过不会太多,呵呵www.driverdevelop.com上面人太少,没办法,来这里问,
大家有没有什么好的解决方法,请帮忙指教指教,200分要是不够就再开几个200分的帖子
大家有没有什么好的解决方法,请帮忙指教指教,200分要是不够就再开几个200分的帖子
他说很好,你可以去找找,呵呵。
不过具体的url和其他信息我都忘了。
问题是我只是要加解密而已,并不想在文件系统驱动这个地方耗费时间,只想赶快把任务完成
非常感谢支持
因为你必须要考虑所有文件操作的 API
分别过滤处理 IRP_MJ_READ, IRP_MJ_WRITE, IRP_MJ_CREATE, IRP_MJ_CLOSE, IRP_MJ_GETINFORMATION, IRP_MJ_SETINFORMATION 的 IRP命令
特别是对文件数据定位的问题,考虑 SetFilePointer 的情况下,你必须对偏移能够进行控制
因此你对加密数据以字节为基准,实际上是对每个字节的数据进行加密,可以进行上下文控制,加密数据中一字节的加密数据最好为一字节的整数倍,这样会加大数据量,增强加密强度,否则使用不定长的数据加密会增大内核处理的时间
不过普通的商业应用应该用不了这么大强度的加密吧,而真正重要的数据实际上在写入前也需要被加密,然后再次通过过滤驱动实现简单加密比较合理一些
在计算机A上做的文档,假设是A.doc,绑定了本机的CPU_ID或用户密匙等信息,使得无法在别的计算机上被打开
1.如果用EFS实现,那是不是别的计算机都必须先安装你的filter呢?这好象有点强人所难.
2.如果保护文档,最好在文档本身做文章.但不知道你是不是就是要保护word一种类型?我觉得PDF的密码保护也可以啊.
http://www.cisisoft.com/SmallClass.asp?BigClassID=3&BigClassName=产品介绍&SmallClassID=2&SmallClassName=隐藏文件指挥器&SmallClassType=0
Word只是一种,实际需要控制各种类型文档,和你介绍的那个有点差异肯定不需要别的计算机有filter,因为文件已经被加密了,所以在别的计算机上就打不开了
加解密条件应该是可变的,比如:绑定本机CPU_ID、或绑定局域网服务器的CPU_ID、或绑定加密狗等等这里有个很简单的要求说明 http://www.smarteam.cn/FileLock.jpg
我去研究一下ifs ddk的例子sfilter上面说的内容我觉得已经值200分了,明天结贴,后面再继续开200分的帖子提问