冒险解谜游戏中文网 ChinaAVG
标题:
文件头+数据块(zlib)+文件名表 的资源文件
[打印本页]
作者:
mckay
时间:
2010-7-16 15:57
标题:
文件头+数据块(zlib)+文件名表 的资源文件
最近研究资源文件发现好几个游戏的文件都喜欢用这样的格式
. y7 E9 O% R& J" W% V0 ^+ z
; [& X6 o" \; `1 F6 H" n+ i/ X: u
文件头
. K d) X9 w9 h- C1 ^
数据块(zlib)
. r- C z" o; D! }/ A; v
文件名表
2 {/ s6 c9 y; U6 b! Q0 |% f9 E
( U$ \8 `* e3 Z$ H( A! A! s
其中文件头格式为
, f6 b9 ]7 W9 h
" Y6 N: J; p, h( g: m4 _! o8 F
IDSTRING(P1)+资源文件版本号packver(4)+文件数量files(4)+文件名表地址指针RES_START(4)+NULL(P2)
; i5 v2 a( U) i" P9 S9 B5 e7 f
) L3 S( n" B5 c
文件名表格式为
$ J+ U8 A/ k5 F, g' o
& }( S5 }+ @$ ]! S( N1 i
文件名NAME(F1)+文件压缩大小ZSIZE(4)+文件解压大小SIZE(4)+文件在资源文件长度FSIZE(4)+文件数据地址偏移OFFSET(4)+filever文件版本号(4)+NULL(F2)
2 n+ B" }! }' n& M
' K( [: o$ P/ W) a5 V
一般情况下,文件压缩大小ZSIZE=文件在资源文件长度FSIZE,但是有时候后者较长,可能是预留空间用于更新维护。
/ `3 T6 S8 }3 g0 e! ~$ i( \" \
$ I% M& c- a& q- g* R& u" W4 e
这种格式的好处是,当资源文件很大的时候更新维护都比较方便,把新的文件压缩后插入数据块的末尾,然后只要在文件名表后加上更新文件的文件名表就行,然后修正文件数量,其他数据基本可以不动。
, a$ T1 a3 U* B. {- y/ A: m- Z
7 B2 e' e7 r8 r' t2 c
所以这种文件解包方法都可以这样,略有不同的可以稍微修改下
6 u3 I3 u( A; P! F, @
getdstring IDSTRING 0xP1
2 R& h* [3 h& W, ?# N
get packver long
* E* C; k. V' P3 ]: Z$ u! W
get FILES long
! r% W" q2 C0 Q; u$ a. D& X- u
get RES_START long
! H( i; \# I( [. H/ o+ C
getdstring NULL 0xP2
+ e. n: c+ s3 Z1 E
6 ^+ W' u+ Q- D7 z" ]6 m2 R% {# F
goto RES_START
" F$ M# g% B A1 z/ T) R
for i = 0 < FILES
! }3 C" ?; H. G. j$ o8 @. t
getdstring NAME 0xF1
3 A& {9 X m( c) c. I3 m# I* b
get ZSIZE long
, W+ _+ L1 ?. ^' J
get SIZE long
. u( M. ?' j9 p$ P. G, i7 U
get FSIZE long
- S8 }" |' S- z# H# |' u
get OFFSET long
7 C# @) U. T+ s/ [ {
get filever long
, I3 w# t5 c, n0 w
getdstring NULL1 0xF2
3 w2 ~* F4 B% j* y0 H
clog NAME OFFSET ZSIZE SIZE
% m9 M# f% P: U1 Q6 E
next i
" v. I/ M1 d% q& u: m
+ Q& w0 b- o: m3 ^5 m
现在,想求高人设计个通用的打包工具,命令行或GUI都可以
2 ~3 @+ f+ m" _
其中变量IDSTRING P1 P2 F1 F2键盘获取,其他变量根据待打包文件修正。
9 w" e3 s# m2 O/ Z
文件版本号Packver、Filever通过读取文件录入,没有没有该文件直接置NULL,FSIZE直接等于SIZE方便处理。
作者:
shane007
时间:
2010-7-16 17:06
能报几个具体游戏名吗?
- e# |. X$ A( c# B9 T
有的游戏支持不打包的,试过没有?
4 Q) K7 T/ b x# |! J! G& a
还可以问问老外
8 @% e. \7 @# Q1 v
http://forum.xentax.com/
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2