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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式0 L8 Y6 @( ~0 ^7 z: r$ w
4 N1 \; Q; O5 c/ Z: ]
文件头$ _, y. m+ J4 r4 w$ y
数据块(zlib)
2 I8 u4 B, B1 B! c- Z; x$ V, k文件名表# ?% ]6 l  h) D$ ?2 F2 k5 ^
: m. g. }. R$ y4 b+ [- N# ~  y; k
其中文件头格式为2 ?/ v6 b: Z9 S# |
8 J  k) y4 s% J- f- h
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
2 D9 t! `% W/ c4 ?3 j( Q# \
3 k) G* E6 M% f1 N, W, J( y- f文件名表格式为3 t5 `8 A  _6 A0 N( h
% u& k9 q( a+ u  R6 v' h2 s# H
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)7 h) }) r1 Y% C2 _
* m9 x+ x' B! l/ `2 C( I$ L
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
' y% }- l7 ?: ]7 W" g
) t# g2 [; t$ G( P6 T: o这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
3 j' Y9 \" v: \% U( @
. m8 e" a! {9 ~9 }, M所以这种文件解包方法都可以这样,略有不同的可以稍微修改下. U: {, b: }# H
getdstring IDSTRING 0xP1& y7 l3 l. G( x
get packver long
3 n( @/ N! g& C5 ?% _get FILES long& r% U) \' e2 |' U5 i* G4 d
get RES_START long
1 _' a3 y& V( l0 b2 n9 W/ `getdstring NULL 0xP2# R3 U) l" ?  |9 I3 T

; u3 d9 p. E; {" G' a9 d9 _goto RES_START
" d! [+ C! f7 V, S4 s" Cfor i = 0 < FILES, E$ S: B" i/ ^+ o
getdstring NAME 0xF1' ?! B1 i0 F$ H# ~3 T- a- D# X& D
get ZSIZE long( S/ }4 c% K' P
get SIZE long$ q4 L( J( `$ h7 l7 M' E
get FSIZE long
. z; V. `: |7 F3 U- a6 x5 }& bget OFFSET long
" x( l$ f, Z/ G2 w4 r; ^5 v2 ^get filever long9 e& j3 L; M0 p6 q6 j$ u( r
getdstring NULL1 0xF2
+ Y  W5 V, E& |clog NAME OFFSET ZSIZE SIZE
0 ?3 o2 U" r: j0 [& z3 [next i0 A8 q! j4 H, x: t" Z, T+ B

# _5 V" n5 q4 |( y" N+ B* N现在,想求高人设计个通用的打包工具,命令行或GUI都可以
0 a* P( T1 ^" @其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
; o- [. @) A1 N% K6 Y文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
  ]. j' M0 R8 K% R8 l( V有的游戏支持不打包的,试过没有?! d5 L0 u0 a$ V4 O- p
还可以问问老外' }. T: A% _9 y. P
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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