阅读:2740回复:11
对DOC文件进行透明加密
如是对A.doc进行保存,
1.当word的temp文件 rename到 A.doc时候,截取这一时刻,记录下来,然后创建一A.doc.tmp文件, 并 把加密好的数据写进A.doc.tmp中 2.在A.doc的POST_CLOSE操作中创建一系统线程 3.在生成的线程中我打开A.doc文件,获取A.doc文件的句柄,然后利用句柄通过ZwSetInformationFile删除A.doc文件,然后将A.doc.tmp 重命名为A.doc. 问题: 在删除文件的时候,我确实是把文件删除了,但WORD中弹出问我的权限不够的错误,在查看之前的相关帖子说是因为以下这样: Since the IRP_MJ_CLOSE dispatch routine can run at APC_LEVEL, and all completion routines can run at DISPATCH_LEVEL, there\'s lots of things that are unsafe to do DELETE operation in the completion routines or IRP_MJ_CLOSE dispatch routine. Solution is create a worker thread! 但我已经创建了线程去完成了,但还是不行啊? 哪位高手帮帮忙啊!! 我搞这个问题已经搞很久了,差不多2个星期了.....郁闷啊 |
|
沙发#
发布于:2011-02-20 04:24
Why not try MT_SET_INFORMATION/Rename instead of DELETE?
|
|
板凳#
发布于:2011-02-20 16:07
回 1楼(michaelgz) 的帖子
I tried this method before,It had the same problem with the DELETE operation |
|
地板#
发布于:2011-02-22 09:55
我的感觉是office 系列有文件变化感知功能,不能轻易修改.特别是在close/cleanup中不能作任何改变文件的操作(或者非常小心),否则就会出现你说的问题.
|
|
|
禁止发言
|
地下室#
发布于:2011-02-22 13:29
回 2楼(010513) 的帖子
用户被禁言,该主题自动屏蔽! |
5楼#
发布于:2011-02-22 19:05
回 4楼(wanghui219) 的帖子
wanghui219 你能详细说说吗?我还是不太明白你的意思!望明教,谢谢.......... |
|
6楼#
发布于:2011-02-23 10:03
回 4楼(wanghui219) 的帖子
我现在在IRP_SET_INFORMATION/RENAME的预处理中将要重命名为DOC文件的TMP文件加密了,想让WINWORD自行将加密了的TMP文件重命名为WORD文件,但依然是弹出了权限的错误啊?wanghui219 ,本人向你诚心求教,这个可恶的权限问题已经搞了我很久很久了,真的很窝火 |
|
禁止发言
|
7楼#
发布于:2011-02-23 14:39
用户被禁言,该主题自动屏蔽! |
8楼#
发布于:2011-02-23 19:17
回 7楼(wanghui219) 的帖子
我不是对指定文件夹下的文件进行加密的,我是采取DOC文件的动态加密!不知wanghui219 有没有做过,我很多方案都试过了,都是会产生权限问题!现在感到很无奈........... |
|
9楼#
发布于:2011-02-23 19:21
回 3楼(znsoft) 的帖子
对啊!我也觉得它真的有这样的功能,无论我是改变DOC文件或是它的TMP文件,他都会产生权限问题的,不知znsoft 有没有什么好方法去试验DOC文件的透明加密 |
|
10楼#
发布于:2011-03-13 23:55
个人观点,仅供参考,考虑的适用范围不同处理机制可能不同。
在重命名时做加密不是很合适,这样相当于是每次保存都是从头到尾整个文件加密一次,浪费大量的时间,遇到大文件头就大了。另外不适用于保存/另存时不创建临时文件的软件/情况,如:有些情况下OFFICE软件保存时直接写回原文件,没有临时文件和重命名操作 |
|
11楼#
发布于:2011-05-14 22:28
学习了,ok!
|
|