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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
. G7 L* k  I& F+ P8 J/ A2 X
- ]4 c# y% e, b6 P5 y: U( X文件头+ c4 o  I/ T0 O. U. ]
数据块(zlib)! b/ O. ?4 |& B$ w. {* T5 e  s
文件名表
! x- T4 @4 v7 H2 ^' D) p* c, X7 q3 A. @$ I
其中文件头格式为# U6 e" F  b/ w3 `- c& {

4 U! y5 p3 z8 b# _3 ~6 IIDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
/ P8 D$ _7 w  n: ]2 |# Q8 U* c( l
$ s, e# k4 o: p  ^文件名表格式为
# H1 N, d" G. j/ r8 j6 ]& _' j/ ?0 r4 r; g2 Z. |7 l
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)" @2 g2 o) B2 ~" z* ]4 [7 }

  ]4 p" h  @  n# H0 }6 ?8 W一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
# }. q4 ^( M: R2 R3 }* E+ S4 t. w" e0 `* ?( ]
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
, q6 {2 K% w7 ~4 K! G8 Q' o  h
/ F: h+ k2 k2 I' Q; b! Y4 b& f所以这种文件解包方法都可以这样,略有不同的可以稍微修改下: d/ H7 z/ y0 ~. s8 Y& x  a& @
getdstring IDSTRING 0xP1
8 _2 V* x% [( L4 T% xget packver long
8 N8 |5 u# F6 V, `get FILES long; ~) ]2 w  b: B1 k  b) M6 u
get RES_START long- }2 `$ y3 q, W8 ]8 K5 f
getdstring NULL 0xP2
) C. H6 o* I( T+ O# e* O
8 {- _4 ]' ?3 g& l9 ]goto RES_START
5 X( _6 M- ~; r' C: V4 {  E1 cfor i = 0 < FILES. P# j' H* a8 x- N& b
getdstring NAME 0xF1
; h. M$ B9 Q; cget ZSIZE long9 S9 K+ B  L  t% v) C
get SIZE long% i- o7 k2 v- V7 e1 N
get FSIZE long
% N8 Y9 u( o3 y$ Pget OFFSET long
& F. V7 h; y2 n. S* ~get filever long" M- s# t' b# T9 I* F) D
getdstring NULL1 0xF2, l/ W( J0 }( V7 {# `! |3 t
clog NAME OFFSET ZSIZE SIZE
) ?, @# a1 |/ V8 U# {5 d7 B# V7 C0 ?next i
; c7 D0 ]# A0 q8 z, b* M; u2 k3 U+ ]4 [. E/ Q# ], u
现在,想求高人设计个通用的打包工具,命令行或GUI都可以$ V+ N- l; w- O; f; m
其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
8 N7 B) H' Q8 _/ t( Z文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?
4 T4 _/ j/ B. H8 y* n有的游戏支持不打包的,试过没有?4 m$ M. C& n% F) S2 {' j9 _1 j( E
还可以问问老外
' p# q' a9 d8 m9 _! Bhttp://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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