阅读:2340回复:16
文件头方式加密,FileObject->CurrentByteOffset要怎样处理?
现在大部分程序都没问题了,但是写字板打开一个加密文件的时候,中间断断续续的少了些东西,是不是该处理FileObject->CurrentByteOffset啊?
|
|
|
沙发#
发布于:2007-12-09 13:45
微软的应用程序都还是比较规规矩矩的,什么Office\notepad\wordpad\mspaint等,有些乱七八糟的程序才叫烦呢,Offset可能只是想到的1点,还有很多方面都有可能
不过clicx是老牛了,我在这里胡扯呢,呵呵 |
|
|
板凳#
发布于:2007-12-09 16:47
我也遇到过这问题,我是这么解决的:
添加文件头后,确定CurrentByteOffset没有移动,然后在读写和设置查询文件信息时,把CurrentByteOffset增加文件头长度 |
|
地板#
发布于:2007-12-09 20:55
这个问题解决了,不能在FASTIO里处理关于文件头的偏移。
但是对于写字板还有个问题,就是他获得的文件大小似乎还是文件长度+文件头长度,读出来的东西后面总是带一堆0。 |
|
|
地下室#
发布于:2007-12-10 10:01
用FILYSPY看看是在IRP_MJ_QUERY_INFORMATION没去掉头的长度还是FastIoQueryStandardInfo没处理,放在头不太好处理VALIDDATALENGTH,并且需要设置CACHE里面有文件长度为去掉头的长度
|
|
5楼#
发布于:2007-12-10 11:35
引用第4楼coolw于2007-12-10 10:01发表的 : 我没处理VALIDDATALENGTH,只要添加文件头都采用非缓冲的读写就不需要处理cache,现在隐藏文件头没问题,只是莫名其妙的不稳定,比如格式化尤盘会蓝屏 |
|
6楼#
发布于:2007-12-10 11:58
引用第5楼dionysus77于2007-12-10 11:35发表的 : 如果不用CACHE 那么每次读写文件都会需要解密加密 这样效率也不高 |
|
7楼#
发布于:2007-12-10 16:59
引用第6楼coolw于2007-12-10 11:58发表的 : 只是添加文件头的时候不用cache,之后的读写用不用cache随便应用程序,但缓冲管理器读硬盘的时候已经隐藏文件头并解密了,因此cache中的数据还是不用处理 |
|
8楼#
发布于:2007-12-10 21:15
我没有处理DIRECTORY_CONTROL,因为这种加密方式没法处理这个,除非每个文件都读一遍,那系统还不慢死,会不会长度直接从这里取了
|
|
|
9楼#
发布于:2007-12-11 11:24
关注!
|
|
10楼#
发布于:2007-12-11 11:41
引用第7楼dionysus77于2007-12-10 16:59发表的 : 读应该是没问题 写呢? |
|
11楼#
发布于:2007-12-11 11:43
引用第8楼clicx于2007-12-10 21:15发表的 : 会的 有些程序会直接通过DIRECTORY_CONTROL得到文件长度 比如CMD下面的MORE命令 |
|
12楼#
发布于:2007-12-11 22:48
引用第10楼coolw于2007-12-11 11:41发表的 : 一样啊,文件头对缓冲管理器是不可见的 |
|
13楼#
发布于:2007-12-12 10:30
引用第12楼dionysus77于2007-12-11 22:48发表的 : 当然 CAHCE里面是没有头的 这里主要是文件长度的问题 |
|
14楼#
发布于:2007-12-12 13:14
引用第13楼coolw于2007-12-12 10:30发表的 : 文件长度信息也是只处理非缓冲的请求,我是这么做的,没发现问题啊 |
|
15楼#
发布于:2007-12-12 16:08
引用第14楼dionysus77于2007-12-12 13:14发表的 : 用写字板打开或者加密一个EXE看正常么? 另外,处理了DIRECTORY_CONTROL? |
|
|
16楼#
发布于:2007-12-12 22:14
引用第15楼clicx于2007-12-12 16:08发表的 : 正常 没处理DIRECTORY_CONTROL ps:我用的minifilter框架 |
|