冒险解谜游戏中文网 ChinaAVG
标题:
【汉化资料】如何对明文文件名表的打包文件解包(原创)
[打印本页]
作者:
shane007
时间:
2009-2-2 22:20
标题:
【汉化资料】如何对明文文件名表的打包文件解包(原创)
发了不少教程,资料,都是转载别人的,这篇是我自己写的。
/ q- o% h# L0 h0 W2 s
由于时间有限,写得很简明,不懂的欢迎提问。
. K' x1 l" e* `7 d, _
( w' G W# G* ]3 ^5 Q! v( y
打包文件一般是如下格式
/ F$ R$ h' d- D0 q
( l$ A' C3 R l! K: a- M. p# f1 m
文件头
6 }+ K" e3 {: Q, l" L, Y) m, c' N* O: Q% M
文件名表
1 a* i6 b& x4 Z
数据块
* a5 m; @ L4 p. u" M3 U
& F! ^$ B4 M4 U) a
文件名表一般是如下形式
9 m' X# u- |3 ?
9 d' ^8 L$ W: K/ ~; q( s3 O9 V. z
Filename1+相关的2进制信息
2 t) }) U' e3 P- y( ?, E8 s+ s
Filename2+相关的2进制信息
6 M4 T/ u2 H9 \8 X1 e
Filename3+相关的2进制信息
/ h& C, x( T0 V( ~( b8 P1 v+ }
。。。
* a2 I* h# I, [+ p
" a: @9 M$ }) r$ x
相关的2进制信息里一般会有文件偏移量和文件字节数。但是如何知道相关的2进制信息中哪些是文件偏移量和文件字节数呢?其实很简单。
" ^! A1 f' P9 f$ z' S* p6 S
4 l- `# g0 X6 f% R! F$ C! t
文件偏移量
7 g+ F5 `$ r) _/ I9 s0 d
每个文件名表项的长度是一样的,那么最后一个文件名表项结束以后是什么呢。
6 L4 W1 B a- G( _1 F6 S
对了,是第一个文件。在2进制编辑器里看一下这个偏移量,比如0002F4D2 ,
g! W) O7 o6 M4 f+ }
在第一个文件名表项中寻找D2F40200,就能找到文件偏移量的保存位置。
* r n0 p5 H! T1 B+ g' k* }
注意,偏移量的保存顺序是高低位颠倒的。
, B! a+ Q, m" Q) ]- w
5 X: x% g& j0 j2 C/ d
文件字节数
( @ Z. g; B/ F9 D$ V
找到了文件偏移量的保存位置后,把第1个和第2个文件偏移量相减,得出第一个文件的字节数。
3 b( l+ M9 b- C+ H ?
在第1个文件名表项中寻找这个字节数的2进制值,注意,保存顺序也是高低位颠倒的。也就找到了文件字节数的保存位置。
; R% d3 e% V/ |7 z9 W. h* n
; e n1 h/ N* F/ E+ @# y
知道了每个文件的文件偏移量,文件字节数,制作打包器,解包器自然就很容易了。
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2