ARF资源包格式记录

ARF资源包格式记录

作者:leexuany(小宝)

ARF资源包是Aliasworlds在他的小熊史努伊系列游戏中使用的文件打包格式。今天上来发布ARF的解包工具(请到http://download.csdn.net/source/511094下载),顺便简单介绍一下ARF的格式。

首先声明:ARF加密了子文件名列表以及每个子文件的头部,未使用压缩,检索效率也不高,也许Aliasworlds仅仅是想保护资源呢?!所以小宝郑重声明,以下的研究仅供学习交流使用,请勿用于非法途径。

ARF文件分为4部分:

1、16字节文件头 2、子文件名列表 3、子文件信息列表 4、子文件数据

一、ARF文件头数据

这一部分共16字节,前4字节是文件标志(41 52 00 00),接下来4字节是子文件个数,4字节加密文件名列表用的MagicKey,最后4字节是子文件信息列表的偏移地址。

二、子文件名列表

这一部分是不定长的,有N个shortstring组成。而且文件名的前4的整数倍字节被加密过,需要用MagicKey异或解密。

三、子文件信息列表

首先定义一个结构 struct FileInfo { WORD ID; // 子文件的编号,一般是从0开始计算,貌似没什么实际意义 DWORD Offset; // 子文件在包中的起始偏移量 DWORD FileSize; // 子文件的大小 BYTE MagicKey; // 解密子文件用的MagicKey };

第三部分由N个FileInfo结构组成,N是子文件的总个数。

四、子文件数据

除去前三部分,剩下就是子文件数据。解包的时候直接通过FileInfo.Offset在文件中Seek,然后读取FileInfo.FileSize字节的数据。不过需要注意的是,每个小文件的头20字节被MagicKey异或过了,我们再异或回来就OK啦。

ARF-S截图

     

这是小熊史努伊财宝猎人中的Loading图,大家还记得吧

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值