clicx
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:2340回复:16

文件头方式加密,FileObject->CurrentByteOffset要怎样处理?

楼主#
更多 发布于:2007-12-09 12:20
现在大部分程序都没问题了,但是写字板打开一个加密文件的时候,中间断断续续的少了些东西,是不是该处理FileObject->CurrentByteOffset啊?
---内核开发合作或提供基础技术服务QQ:22863668 ---
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-09 13:45
微软的应用程序都还是比较规规矩矩的,什么Office\notepad\wordpad\mspaint等,有些乱七八糟的程序才叫烦呢,Offset可能只是想到的1点,还有很多方面都有可能

不过clicx是老牛了,我在这里胡扯呢,呵呵
提问归提问,还是只能靠自己
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-12-09 16:47
我也遇到过这问题,我是这么解决的:
添加文件头后,确定CurrentByteOffset没有移动,然后在读写和设置查询文件信息时,把CurrentByteOffset增加文件头长度
clicx
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2007-12-09 20:55
这个问题解决了,不能在FASTIO里处理关于文件头的偏移。
但是对于写字板还有个问题,就是他获得的文件大小似乎还是文件长度+文件头长度,读出来的东西后面总是带一堆0。
---内核开发合作或提供基础技术服务QQ:22863668 ---
coolw
驱动牛犊
驱动牛犊
  • 注册日期2006-03-20
  • 最后登录2012-04-13
  • 粉丝0
  • 关注0
  • 积分521分
  • 威望65点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-12-10 10:01
用FILYSPY看看是在IRP_MJ_QUERY_INFORMATION没去掉头的长度还是FastIoQueryStandardInfo没处理,放在头不太好处理VALIDDATALENGTH,并且需要设置CACHE里面有文件长度为去掉头的长度
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-12-10 11:35
引用第4楼coolw于2007-12-10 10:01发表的  :
用FILYSPY看看是在IRP_MJ_QUERY_INFORMATION没去掉头的长度还是FastIoQueryStandardInfo没处理,放在头不太好处理VALIDDATALENGTH,并且需要设置CACHE里面有文件长度为去掉头的长度

我没处理VALIDDATALENGTH,只要添加文件头都采用非缓冲的读写就不需要处理cache,现在隐藏文件头没问题,只是莫名其妙的不稳定,比如格式化尤盘会蓝屏
coolw
驱动牛犊
驱动牛犊
  • 注册日期2006-03-20
  • 最后登录2012-04-13
  • 粉丝0
  • 关注0
  • 积分521分
  • 威望65点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-12-10 11:58
引用第5楼dionysus77于2007-12-10 11:35发表的  :

我没处理VALIDDATALENGTH,只要添加文件头都采用非缓冲的读写就不需要处理cache,现在隐藏文件头没问题,只是莫名其妙的不稳定,比如格式化尤盘会蓝屏


如果不用CACHE 那么每次读写文件都会需要解密加密 这样效率也不高
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-12-10 16:59
引用第6楼coolw于2007-12-10 11:58发表的  :


如果不用CACHE 那么每次读写文件都会需要解密加密 这样效率也不高

只是添加文件头的时候不用cache,之后的读写用不用cache随便应用程序,但缓冲管理器读硬盘的时候已经隐藏文件头并解密了,因此cache中的数据还是不用处理
clicx
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2007-12-10 21:15
我没有处理DIRECTORY_CONTROL,因为这种加密方式没法处理这个,除非每个文件都读一遍,那系统还不慢死,会不会长度直接从这里取了
---内核开发合作或提供基础技术服务QQ:22863668 ---
zjg1979
驱动牛犊
驱动牛犊
  • 注册日期2006-09-21
  • 最后登录2012-05-18
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望100点
  • 贡献值0点
  • 好评度49点
  • 原创分2分
  • 专家分0分
9楼#
发布于:2007-12-11 11:24
关注!
coolw
驱动牛犊
驱动牛犊
  • 注册日期2006-03-20
  • 最后登录2012-04-13
  • 粉丝0
  • 关注0
  • 积分521分
  • 威望65点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-12-11 11:41
引用第7楼dionysus77于2007-12-10 16:59发表的  :

只是添加文件头的时候不用cache,之后的读写用不用cache随便应用程序,但缓冲管理器读硬盘的时候已经隐藏文件头并解密了,因此cache中的数据还是不用处理


读应该是没问题 写呢?
coolw
驱动牛犊
驱动牛犊
  • 注册日期2006-03-20
  • 最后登录2012-04-13
  • 粉丝0
  • 关注0
  • 积分521分
  • 威望65点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-12-11 11:43
引用第8楼clicx于2007-12-10 21:15发表的  :
我没有处理DIRECTORY_CONTROL,因为这种加密方式没法处理这个,除非每个文件都读一遍,那系统还不慢死,会不会长度直接从这里取了


会的 有些程序会直接通过DIRECTORY_CONTROL得到文件长度 比如CMD下面的MORE命令
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-12-11 22:48
引用第10楼coolw于2007-12-11 11:41发表的  :


读应该是没问题 写呢?


一样啊,文件头对缓冲管理器是不可见的
coolw
驱动牛犊
驱动牛犊
  • 注册日期2006-03-20
  • 最后登录2012-04-13
  • 粉丝0
  • 关注0
  • 积分521分
  • 威望65点
  • 贡献值0点
  • 好评度54点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-12-12 10:30
引用第12楼dionysus77于2007-12-11 22:48发表的  :


一样啊,文件头对缓冲管理器是不可见的

当然 CAHCE里面是没有头的 这里主要是文件长度的问题
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2007-12-12 13:14
引用第13楼coolw于2007-12-12 10:30发表的  :

当然 CAHCE里面是没有头的 这里主要是文件长度的问题


文件长度信息也是只处理非缓冲的请求,我是这么做的,没发现问题啊
clicx
驱动老牛
驱动老牛
  • 注册日期2003-10-03
  • 最后登录2016-07-26
  • 粉丝0
  • 关注0
  • 积分792分
  • 威望696点
  • 贡献值41点
  • 好评度499点
  • 原创分0分
  • 专家分0分
  • 社区居民
15楼#
发布于:2007-12-12 16:08
引用第14楼dionysus77于2007-12-12 13:14发表的  :


文件长度信息也是只处理非缓冲的请求,我是这么做的,没发现问题啊

用写字板打开或者加密一个EXE看正常么?
另外,处理了DIRECTORY_CONTROL?
---内核开发合作或提供基础技术服务QQ:22863668 ---
dionysus77
驱动小牛
驱动小牛
  • 注册日期2006-11-15
  • 最后登录2011-12-18
  • 粉丝0
  • 关注0
  • 积分27分
  • 威望392点
  • 贡献值0点
  • 好评度177点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-12-12 22:14
引用第15楼clicx于2007-12-12 16:08发表的  :

用写字板打开或者加密一个EXE看正常么?
另外,处理了DIRECTORY_CONTROL?


正常
没处理DIRECTORY_CONTROL
ps:我用的minifilter框架
游客

返回顶部