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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
4 Q$ |+ p! Z+ X3 ~1 X$ M( H) M+ q% y3 {7 a9 O' B( a* w: ]( [
文件头$ n/ X% P/ {( x# y' P0 n* W" N
数据块(zlib), i+ e/ u: a  k: h
文件名表
! ?# x- d' j7 t5 S! G9 e8 ~; \; s; ]* d: S. l
其中文件头格式为" u' O. v! i2 R
) Y* n3 u* G% o7 K2 h# s2 {! X
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
5 R* }/ u8 _$ W# v2 h8 J# p/ P3 e; Y1 @  T& k. c
文件名表格式为
! ^5 V6 j& ]' b! x
+ [* F9 k+ N6 k3 B; h文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)
: w% w* n+ L! C# w7 i: w: g) j) g) Y
& t+ u5 F: \+ u; f8 m一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
4 R7 z& F+ f6 R8 D8 e# G( V4 @7 H) j3 Q. Q4 x' q; h
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
( D1 o$ ?2 ^" s/ R. n: f$ a" w3 T1 p  ^2 I! w* E. o2 L
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下
* S6 ~' g; n/ i0 q8 Z  k9 V0 q5 i7 Egetdstring IDSTRING 0xP17 `: T3 X0 B6 K4 b
get packver long
  K% h1 ]5 u4 x. g' \get FILES long
" q1 m; r5 F( d( Rget RES_START long
% m2 V3 [2 c$ o5 M9 Z6 Q3 s( zgetdstring NULL 0xP2
" L& ?  T; j5 a9 R$ p2 v- V3 a0 m, Y$ v: y7 S, I9 [  g5 ]
goto RES_START. e( Q& J) @: d; |
for i = 0 < FILES$ s4 ?9 `0 z7 Y8 N( L3 m
getdstring NAME 0xF13 S+ \7 A* ]) O* a3 z7 A/ J9 N9 E  |
get ZSIZE long
, h% ^$ Z. r: y$ a; nget SIZE long, J5 g  Y8 P  ^( z$ p! J
get FSIZE long
8 J( a$ r1 O4 d- I2 ^" B! }get OFFSET long9 J7 t  a( d  Z; |" ?8 T: {% ^; A
get filever long
, f, D0 P" p: w" v3 Z8 Y2 ]getdstring NULL1 0xF25 L( V2 r5 m9 m( C
clog NAME OFFSET ZSIZE SIZE1 t6 [' q2 M( h9 Q
next i6 r: N2 B! D4 O4 ]) N) f. T  N" O

$ B9 r' w1 `' O& G6 D& d现在,想求高人设计个通用的打包工具,命令行或GUI都可以
7 b* b) L8 ?% B7 G其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
: s7 W7 ]( _/ X: E1 u+ e文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
- z/ X$ `; A5 G2 j有的游戏支持不打包的,试过没有?
% i7 c$ J7 v2 H" h, W7 d& c3 \- V还可以问问老外
9 O  A0 [1 `0 X& I# qhttp://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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