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

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

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

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

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

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

最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
9 O5 ]4 F( K, k% M1 _+ c
' }4 o# m0 F0 L. O( @5 L, g文件头
+ d& A! Y0 v# f& P数据块(zlib)
7 Q3 z# \* ~& U! E) K! B: Q文件名表( M: u! E; R+ }( Q2 Q# v$ U0 j0 Y" q* p
  |+ m0 L8 I" x! l2 W. }
其中文件头格式为
' ?- G: f2 V6 K# K% }% q8 i
0 g. z6 x& t  JIDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
8 o. S3 F) w3 ?  w
$ F3 a: i2 c3 ]: O+ `% A+ c( l文件名表格式为* M5 V; n/ \# \8 V! W! Z
7 ^6 r! z/ {* Q: {9 }
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2); C7 o* e1 t, q* }: D
# ~9 x7 @. o, _
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。& S  T1 M- V6 i  q( L* v3 y9 T
3 h* o7 T. \9 B5 T
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。) j3 R9 P# B% ~! e/ ?1 g
) L2 _2 Y3 {) K8 v0 h$ q+ }. l
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下  a# E5 [% t# e4 R7 Y& }
getdstring IDSTRING 0xP1
* e& X4 o# M0 T" n4 Yget packver long- l3 O: o& ]4 t3 w
get FILES long" h* R9 g) T& E4 m" \; H1 _
get RES_START long! `) }: g8 L! s; ]
getdstring NULL 0xP2
" V  p5 E0 p- I. }; W. I! M8 |4 n( l4 T' T1 N( M
goto RES_START
) L; T9 ~$ s# V+ g; [! ?for i = 0 < FILES  H& g* |) l$ l
getdstring NAME 0xF14 K. A' Q" |# }6 ], j: g3 a9 Y
get ZSIZE long
! W6 S' z0 V( B+ k- w9 aget SIZE long, f9 r9 j, f1 M, f! T
get FSIZE long
0 u, B1 z4 d* z/ l9 a2 I0 W' Wget OFFSET long
4 s& p, O- I# n+ e" P( S  L& ?$ Sget filever long
0 g' X* H& j$ s# @0 ~; }getdstring NULL1 0xF24 q2 s9 `( r5 s; \. ?0 ?
clog NAME OFFSET ZSIZE SIZE3 r" v  S  g2 M, y& l
next i9 N  L4 E; g; E6 e4 z1 }" v
3 [# P% m) y- a  a
现在,想求高人设计个通用的打包工具,命令行或GUI都可以
3 d# Q4 x3 b* j其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。+ N% I1 |3 z! M" M& v  H
文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2010-7-16 17:06 | 只看该作者
能报几个具体游戏名吗?- ?2 j- d; ?+ f9 n
有的游戏支持不打包的,试过没有?
( W. r6 H( v: \$ b: S8 V3 P还可以问问老外9 X) Y( m1 ]$ Q- Z# t' N2 a1 M$ j2 B
http://forum.xentax.com/
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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