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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
) i, r+ G) [" S7 f$ N. n% O4 x6 y" L
文件头2 G+ I- E8 M( i/ n/ p5 a
数据块(zlib)4 u  w. I, W& g
文件名表
0 P" i- L, z5 }, L) K
$ j, o( Y& \/ r- T  ]其中文件头格式为
/ Q. ]( `' @( {6 j
; u: F5 P8 U9 b' O/ y8 {7 }+ D+ kIDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)& e+ v+ ]3 a, L9 @

- Q: n0 d  j4 U9 W文件名表格式为
; i, E* n" s) [9 z9 p/ P& D( y- O3 L8 X: s& U% A# Q
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)% O5 F/ H1 c. F! p9 H) O+ ^% u# s

7 M. ?, E; C: l, [2 C9 O一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。/ g* P8 j& i' D. t" p% K; n
% d  [+ t- @4 J% q, v! N2 N9 ~
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
, x: l% F1 S2 q, r
' n. k& r# v  h$ m0 Y& h+ \4 _& \所以这种文件解包方法都可以这样,略有不同的可以稍微修改下
7 z  I7 b' n0 ^4 l' Fgetdstring IDSTRING 0xP1
; v6 P1 K$ k, j1 Z+ n" @get packver long+ z1 Z( \% `) o+ N8 k: ]. y
get FILES long
* s1 l/ d) N$ zget RES_START long
1 C* V$ a' Y6 p, \# d: ~! c. U" @2 Ugetdstring NULL 0xP2
* y- X! ?9 E1 v6 q5 r
2 _* M8 m6 D2 X* e# j( j# b+ ngoto RES_START$ L0 ]  \& k: U$ v  N* S6 t
for i = 0 < FILES. O3 ]. C3 D5 T  k$ p
getdstring NAME 0xF1
5 {1 }% Y% y* y6 dget ZSIZE long1 s0 h  U) Q6 @2 w" s* V
get SIZE long
: h: }; s4 S! {* `get FSIZE long& d: {3 `  \1 r  r9 i0 O
get OFFSET long. Q, E7 V  U; U
get filever long
, N/ y; M; j5 Zgetdstring NULL1 0xF2
. X# a7 Q. ^8 e, iclog NAME OFFSET ZSIZE SIZE
- R7 Q6 H0 }3 ^/ p. N5 X9 y* `next i: u8 C8 `" M6 l) Y$ u( A

/ t$ W- Q$ x. F1 L3 w3 z6 T& e; Z现在,想求高人设计个通用的打包工具,命令行或GUI都可以
# X7 M3 F8 x1 P7 v# ^, t9 T其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。9 [6 Z* T: l7 z5 z( V* z
文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
5 ?, r, X9 |/ \& ]  Q( G有的游戏支持不打包的,试过没有?8 n: }2 f/ z, l) ]/ y) b) W
还可以问问老外* K9 |/ U$ J% {9 B' _, M6 \% ?3 j
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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