fatmouse527
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2009-04-10
  • 粉丝1
  • 关注0
  • 积分347分
  • 威望85点
  • 贡献值0点
  • 好评度81点
  • 原创分1分
  • 专家分0分
阅读:1517回复:7

高手请讲,给200分(在透明加密驱动加载过程中,操作rar文件时文件会多出空白)

楼主#
更多 发布于:2007-06-20 16:51
我做了一个透明加、解密的文件系统过滤驱动。
现在可以对txt、office系列、图片等正常加解密。
我采用的是在文件中加入文件头的方式(文件头长为:4096)来记录加密信息。

目前的问题:我在压缩某一加密文件时,这个文件可以正常的被压缩,但是解压后,文件后多了4096个数字0。我认为winrar通过某种方式获得了这个加密文件的真实长度,但又读不到这么多内容,在解压后,就用数字0填充了,winrar通过什么方式获得的真值呢?我应该怎么骗过它呢?

这个问题困惑了我很久,都没有解决,如果大家谁知道请告诉我,先谢了。
驱网无线,快乐无限
liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-06-20 17:43
winrar是以sequential的方式打开文件的.它发的读IRP中读的长度可能大于文件实际长度.
fatmouse527
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2009-04-10
  • 粉丝1
  • 关注0
  • 积分347分
  • 威望85点
  • 贡献值0点
  • 好评度81点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-06-20 18:26
谢谢liyunch,什么是sequential方式呀,winrar是自已发irp获取文件长度的吗?
有一点可能我没说明白,举个例子:

比如文件大小=文件头+文件内容。
文件头:长度为4096,是我记录加密信息用的,而且是不想用户看到的。
文件内容:长度为5

文件的实际长度是4096+5
现在我通过修改
IRP_MJ_QUERY_INFORMATION
IRP_MJ_SET_INFORMATION
IRP_MJ_READ
IRP_MJ_WRITE
IRP_MJ_DIRECTORY_CONTROL
Irp请求,用户会认为这个文件长度为5,而且也只看到文件内容。
但是经过压缩后解压的文件长度=5+4096。前面5个是文件内容,后面是4096个数字0
驱网无线,快乐无限
liyunch
驱动小牛
驱动小牛
  • 注册日期2001-06-28
  • 最后登录2014-09-05
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望134点
  • 贡献值0点
  • 好评度94点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-06-20 21:03
具体的说不上来.你还是跟踪下写文件的情况
looksail
荣誉会员
荣誉会员
  • 注册日期2005-05-22
  • 最后登录2014-03-15
  • 粉丝2
  • 关注0
  • 积分1016分
  • 威望991点
  • 贡献值0点
  • 好评度239点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-06-20 21:19
不止rar,肯定还有别的程序一样有这个问题吧,你只是试了几个简单的程序而已

加文件头确实是个超级麻烦的东西,连devia都不加头

不过我现在烦死了网络文件系统和缓存,唉,真累
提问归提问,还是只能靠自己
fatmouse527
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2009-04-10
  • 粉丝1
  • 关注0
  • 积分347分
  • 威望85点
  • 贡献值0点
  • 好评度81点
  • 原创分1分
  • 专家分0分
5楼#
发布于:2007-06-21 09:25
应该是还有别的程序也能知道,但是目前常用的这些都试了,只有winrar知道文件的实际长度。
还有问题是不在于写的过程,而是在于winrar如何知道文件的长度的。
驱网无线,快乐无限
fatmouse527
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2009-04-10
  • 粉丝1
  • 关注0
  • 积分347分
  • 威望85点
  • 贡献值0点
  • 好评度81点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2007-06-21 15:06
自己顶了
驱网无线,快乐无限
fatmouse527
驱动牛犊
驱动牛犊
  • 注册日期2006-12-27
  • 最后登录2009-04-10
  • 粉丝1
  • 关注0
  • 积分347分
  • 威望85点
  • 贡献值0点
  • 好评度81点
  • 原创分1分
  • 专家分0分
7楼#
发布于:2007-06-26 10:38
没有人回答就结贴了liyunch 和looksail 各给50吧,谢谢:)
驱网无线,快乐无限
游客

返回顶部