设为首页收藏本站官方微博

其他 文件头+数据块(zlib)+文件名表 的资源文件

[复制链接]
查看: 2938|回复: 1
打印 上一主题 下一主题

[其他] 文件头+数据块(zlib)+文件名表 的资源文件

跳转到指定楼层
楼主
发表于 2010-7-16 15:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

文件头+数据块(zlib)+文件名表 的资源文件

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式* e: S' f  E% p: k6 z& h8 W, Z5 D. s

) A1 P% e4 u  ^5 {文件头
; F4 ^" K4 w( Q1 M1 W/ O数据块(zlib)& J! v* X0 E- ~& j6 U
文件名表
/ B7 Z  U, k7 B' D- Q8 E( k" a* z/ D! N/ q; S
其中文件头格式为6 y6 J# Q0 c6 k# j; ~

) {* W/ V" a# cIDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)$ u$ x: M- h0 S3 U0 Z  Q4 p
3 q  X' ^; g) D1 r3 x- K" b
文件名表格式为
- F+ Z7 A& i" o
% X* ]; Z# L/ k) n5 h* Z: a! X文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)+ ]- v5 W% [& U3 Q- O( m( v
; V" u: _+ y3 @2 h% W1 j
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。; ~6 W* _, j' T: m7 w
4 K1 N" F5 e% h$ w0 o/ }6 ]
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
* E2 I2 Y7 `' s6 |5 w% F  L$ m6 V; n5 L2 q2 q6 P
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下
* Y6 |- o$ H$ H) j2 bgetdstring IDSTRING 0xP1( ?5 o  c; e+ X- f0 I) x8 G
get packver long7 @& @, @. W6 i% k7 z
get FILES long9 n$ \' `- c* l
get RES_START long+ U: P  @( x1 R4 u, z3 L2 S) A* g2 v
getdstring NULL 0xP2% z1 z# {$ L) U3 T7 X
$ e1 @' e1 J6 m' U0 [' O8 q) k7 u
goto RES_START0 ]/ U0 _2 j5 z' v. J& h! d& C
for i = 0 < FILES0 e5 e4 k4 |( ?0 \) C
getdstring NAME 0xF15 Y1 b7 q# {5 P6 i; C$ |
get ZSIZE long6 M7 n# b7 W# ~) Z. [9 ]# S
get SIZE long
4 s* d7 x$ F2 f/ l" m+ v2 tget FSIZE long" Q, ?( t7 P5 S+ u7 w
get OFFSET long
  n) g+ ~, R, l) jget filever long
5 z" W9 R7 T$ a. {" X  }% H; dgetdstring NULL1 0xF2
1 d& e9 g  |0 k& E8 Qclog NAME OFFSET ZSIZE SIZE
$ R9 b2 S% a2 ^( xnext i: p# Q( x" d- \* b! K, r: {' ]/ x
6 t5 A3 P3 M$ Q; A9 L) r
现在,想求高人设计个通用的打包工具,命令行或GUI都可以
; ~3 {0 q6 i/ _2 G其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
# q7 C4 I+ `, v# R  k  f* l1 ?文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
3 R. c' I: i3 d+ k4 e& K有的游戏支持不打包的,试过没有?$ x$ \: A- Q2 {+ Q! b
还可以问问老外5 T% X# l5 U( Q
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表