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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
( }- V: y. I7 O; C4 [  U0 m& E" z# D3 c
文件头
4 }" f4 f: K* o1 s* W数据块(zlib)
' [* r5 w$ _' q( x5 d" q文件名表
1 R0 |4 _" [) \% [8 ^( c
. O8 }5 e1 H7 u其中文件头格式为
% {# B5 N2 F. m! |  Z& }/ ]; [* t. x$ p8 u9 J
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
; Z' B1 |/ Q* c1 q' @; x3 c! G% z4 W* |4 i/ V
文件名表格式为. m3 z. M2 g  |, q% I
% I; v4 P% r0 q# L/ u' [+ `. `
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2). N# k" D# D4 U7 R( W

  R2 Z9 D, a; o5 q一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
* V, {$ T$ x" t/ `& N- z9 L/ ?3 q0 w; _
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。: z2 Y" v4 ?$ |( M" F; P7 u% h
4 C0 l  d# d4 J% T4 `9 D
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下
! e( Y3 i% m& n5 d: [) l1 cgetdstring IDSTRING 0xP1* M4 q" _0 f  g; N, b0 j& q5 I7 f' ~
get packver long
8 B* W0 h8 |# X: ^2 P- Hget FILES long# ?! _7 M- n3 b/ K6 W4 @' Z
get RES_START long
$ Y$ |2 N. _+ {& W. }getdstring NULL 0xP2
# a- ^3 \. }  f8 I# N: W- V
2 [' F$ \  K( T2 C* h$ N' y" Agoto RES_START
3 T1 P. U; j% J3 _' Sfor i = 0 < FILES- c1 q6 T# D% Q0 V
getdstring NAME 0xF14 J4 a8 y! [2 S& q6 ^, w* b
get ZSIZE long8 Z4 `1 Z7 }9 D- K; s$ q' Q. u  U' V
get SIZE long
7 |: X) k' a+ \' ?* d2 S0 M' l+ O0 _+ Vget FSIZE long* O2 F# K5 Q; V- @; U7 k
get OFFSET long
' X) K$ ?/ [6 q0 Wget filever long
  t" @! T: ]4 {: ?) b7 g2 H! v7 Dgetdstring NULL1 0xF2
, ?3 n* {6 N( ^* {+ d; u6 ]clog NAME OFFSET ZSIZE SIZE- L5 S/ W0 ]( o. t, w% C
next i8 @& H1 f8 N- J5 q
; `$ Y1 ]4 U8 ]2 V- D
现在,想求高人设计个通用的打包工具,命令行或GUI都可以
4 R& W/ A5 `5 b0 v其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
, O5 X/ f. p/ o! L  O7 l文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?" ^3 q' y9 W( H- ?$ c
有的游戏支持不打包的,试过没有?( F/ d) q/ E8 V/ g. Z
还可以问问老外
" n& y5 H1 \  A' u9 Rhttp://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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