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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
# e# u- W, U' Y( P" L, B# I$ i5 r/ _7 q6 C$ K1 i0 v
文件头2 X; B3 C& r! s3 ^$ K5 m9 p$ c
数据块(zlib)  b3 M( x* Y! i/ @
文件名表+ N; Z+ d* j2 d/ k$ W
+ E/ N! l. k) Y: m6 W" r
其中文件头格式为0 x9 K& {. H. ^; ?
7 p2 k! L" a" g; Z
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
* C2 @- y2 Z; @% ?( ~; d  ^
/ F1 t+ f$ r  l4 |文件名表格式为, f# |: P, U) ~
, k, E: O. A! s9 J. [; O
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)' i# }1 i: K5 I
: S7 {' ]4 g) A6 N' m. l2 ]/ D; A
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。- n8 V) G/ \- q5 z& \- y* m6 V4 Q

# b' e6 ]( _0 h, K, n这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。) q2 a' E- M/ q8 w. M  g
* h9 p8 K4 [; e8 N- @+ P: h0 t! i
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下- q+ w# J, {+ {
getdstring IDSTRING 0xP18 @' ~6 M+ |& J4 F( }
get packver long
) G' R) y/ x8 G: S; L6 y! W6 xget FILES long
/ O* F# W% L! A3 e- g) o4 o; pget RES_START long
5 d, e+ W8 z6 l( s* `getdstring NULL 0xP2: S+ Z5 r% y' M3 R& L
& A7 k6 ~' V; ^+ A( n& |/ o
goto RES_START
4 \& l. O- `" k, S$ b! C# Z9 T$ sfor i = 0 < FILES  `8 l5 H, q! F1 j, Y
getdstring NAME 0xF1
, I+ j9 O/ |6 r) ]get ZSIZE long' a. @; W& A3 Y
get SIZE long  v; q2 z1 n; T2 T7 \! J
get FSIZE long
6 h% e) H) l, P7 M  ]6 N) Vget OFFSET long
/ u9 P8 e# ~/ Sget filever long4 v" n2 @6 b  y0 u
getdstring NULL1 0xF2. B# |+ {. t9 S3 C7 x/ b. D4 t! ~8 I
clog NAME OFFSET ZSIZE SIZE
- c: `4 n4 `+ o" k7 Q# n3 _* Gnext i
1 Y( C6 K  H1 w3 I* e- c- p7 P. K
现在,想求高人设计个通用的打包工具,命令行或GUI都可以' |9 C* r% c: A+ V' F
其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
# G1 R; d5 Z. P文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
5 i+ |( Y% y2 n+ v2 M/ c有的游戏支持不打包的,试过没有?
' x+ L9 z3 @! ]还可以问问老外8 b* O+ X2 ]7 C, E& o4 ~1 h
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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