阅读:2420回复:4
ppt文档加解密过程中会出现的共性问题
现在在做minifilter下的透明加解密,其它类型的文档都已经初步通过测试,
但是在对ppt文档加解密总存在问题!!! 现象: 新建一个ppt文档,打开,报错。提示powerpoint不能读数据。 原因: ppt进程打开文档时会往回写一些数据,回写是由于一个IRP_FLUSH_BUFFER请求引起的,对于新建文档,写的数据范围是0~0x1000和0x2000~0x2800,中间有一部分数据没有回写,由于我在写的时候对数据加密,从而导致中间有一部分数据没有加密。 word和excel在打开时都不会有回写的动作,ppt为什么要这么做,大家是怎么解决这个问题的呢? |
|
|
沙发#
发布于:2009-10-21 09:32
哪位遇到过类似的情况,能否说说思路呢?
|
|
|
板凳#
发布于:2009-12-11 16:12
等待中。。。。
|
|
地板#
发布于:2009-12-17 16:22
我想到的解决方法如下:
对PPT文档进行修改后,在保存时,点击“Save”和直接点“Close”保存的流程是不同的。 直接点击“Close”,PPT进程会生成临时文件,这种情况好处理,直接对写入临时文件的内容加密即可。 点击Save进行保存,PPT进程不会产生临时文件,仅仅将修改过的数据flush回磁盘,因此可能只有部分数据被回写。此时,如果PPT文档在打开前已经是加密文件,那么好处理,加密所有写回到磁盘的数据; 如果PPT文档打开时还是一个未加密文档,那么在这里标记该文档已经被修改,但是写回的数据暂不加密,当文档被关闭时,重新对文件加密即可。 由于PPT文档的特殊性,未加密文档在第一次修改后,关闭时会被整体加密一遍,因此如果文档较大,第一次关闭文档的时间可能有所延长(实际当中并不明显),这个方法已经被我验证通过。 但这确实是PPT本身所引起的一些问题,这样做实属无奈之举,也可能还有其他的好办法,暂没有想到。 |
|
|
地下室#
发布于:2009-12-21 16:19
这个问题我也碰到了,我也尝试用你的方法试试
|
|