-
-
[旧帖]
[求助]对WPS进行透明加密的问题……
0.00雪花
-
发表于:
2012-12-2 15:54
3719
-
[旧帖] [求助]对WPS进行透明加密的问题……
0.00雪花
我写了一个minifilter的透明加密驱动,现在对记事本加密完全正常.现在相对WPS保存的文档进行加密,我先选了个最简单的对WPS保存的txt文件进行加密,但是发现加密头写不进去,而且文件长度有问题.....
我的流程是这样的,我使用的是加密标识卸载文件头.PostCreate的时候判断是否是加密文件,是的话刷缓存,然后如果是机密进程新创建的文件那么写上加密头.在PreWrite的地方对数据进行加密,写文件的偏移量加上一个加密头大小,另外在PreSetInformation处过滤,如果是机密进程那么ValidSize EndofFile AllocateSize Position等全部加上一个加密头大小,在PostQueryInformation的地方减掉一个加密头大小,大概思路是这样的.
我先尝试让wps保存一个txt文档.写一个文档保存为Alpha.txt跟踪发现wps先创建了一个Alpha~664AA.txt的缓存文件,然后把内容写进去,改名成Alpha.txt,存在两个问题..
一个是,我的文件长度总是弄不对,而且在PreClose的时候重写的加密头成功写进去了,但是之前的加密头被其他东西覆盖了.而且文件大小永远只是文件的有效大小,也就是我本来加上去的那个加密头的大小没了...
突然System进程对Alpha~664AA.txt的SetInformation操作被过滤到了.这是什么情况?为什么会有System对Alpha~664AA.txt进行操作?不应该左右操作都是由wps.exe发出的么...我的所有IO操作全是Flt系列的,应该不会重入啊.....
请各位大牛帮忙看看... 说说您的经验....这个对wps或者ms office到底怎么弄才对啊.....谢谢大家
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!