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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式9 A' ?: v! X$ E; M& ]0 B% S, |
' |6 M. D; |) O& O
文件头
  b4 O$ f" i; G6 j/ {% s1 X数据块(zlib)
4 ]& p$ k. d; _) f9 F; F文件名表
9 W0 w3 u, g* Y* y9 x1 B
* F8 C3 \" @; Q0 n5 v2 {' u; G其中文件头格式为
& D2 x$ F2 z: C3 q/ f: b3 n: r$ i' ^. K9 G/ `- y6 Z
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)4 B, h' Q. A, o) I: \: Y% |

: ~" B; A; V" i$ S4 |; R1 x! ~文件名表格式为" R( X$ R1 B: W2 I

7 [: n9 n4 W4 ]) e- {" }6 E文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)
# B! G' W! {9 a% Z, D5 @' o
7 n- s9 f# u% \& \3 ~, A一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
, H) Y; z- E  Q" x% j) O/ p* |6 q% V8 X7 Y0 r: a9 ?  F
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。% S6 y6 U2 S% h

4 ?5 N* c# j5 E. g所以这种文件解包方法都可以这样,略有不同的可以稍微修改下7 o! D/ J& t: S8 M6 x. U( d
getdstring IDSTRING 0xP11 m/ e* t3 q$ ~& s
get packver long$ v% T) k$ J; ^( V% o4 Y
get FILES long2 K. S, Q1 @- F; M3 b
get RES_START long& y4 Y3 P4 D1 r* _
getdstring NULL 0xP2- s8 [  |- b. W/ f7 S
' S4 |; \* ~8 H7 F
goto RES_START
" w% g) ?0 [7 ^# E" d8 L; ?5 pfor i = 0 < FILES
+ p) k( v, r5 s) B" P; ugetdstring NAME 0xF1
7 R7 m9 @  t5 p$ Uget ZSIZE long7 H' ~& N( T/ X3 a3 a
get SIZE long) D0 l' `9 y8 E1 t* U( W& n
get FSIZE long/ x( I. h+ e/ m) O
get OFFSET long
) D. ^6 o9 s( O) Pget filever long
, f  t4 b3 K2 {8 {1 |getdstring NULL1 0xF2. b/ W; J5 x" R$ g7 X
clog NAME OFFSET ZSIZE SIZE' B! Y' x* `! G
next i
2 D" D& S8 M& N) c$ W" P6 H# J! Z1 v. n7 u6 [
现在,想求高人设计个通用的打包工具,命令行或GUI都可以
- r! H2 W% k" t6 r3 k, f4 o+ J/ @其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
( a) n6 J( N' ^% P/ O6 W" P文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
% r( _. d* Z7 o( e! z. Y$ I1 x: K有的游戏支持不打包的,试过没有?
" \) @/ A4 U3 ~/ B! K( U6 C还可以问问老外6 @3 o& ]- H; Q% `8 m
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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