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

【汉化资料】游戏包文件结构分析(2)

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

【汉化资料】游戏包文件结构分析(2)

跳转到指定楼层
楼主
发表于 2008-10-30 19:43 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

【汉化资料】游戏包文件结构分析(2)

5.第二个例子——一个小游戏的包文件格式
2 v) \( d; X* e4 F% Q8 P
0 a: H9 B5 W2 o1 V; r* F, E- w下载地址:http://www.lanqie.net.cn/html/benzhanzuopin/20070604/43.html AAAKK版# G6 H2 V! O6 V: t4 [+ b& Y

0 y5 S8 P8 R* q& W: b3 O包文件是安装文件夹中最大的文件Game.dat。
, Z4 F7 b8 }5 d# S6 {4 J) M# x7 i- R5 a/ b# c; L
这个格式用到了简单的异或加密,但是文件索引表非常简单,因为没有文件夹格式。
% y. R  J# g8 b- M0 v$ |) F, m, E5 ], p5 I% U
打开文件,发现有一些文件名(1.BMP,1.WAV),而且每两个文件名的开头间隔一样,说明文件索引长度固定,为28。可以看到文件名占20字节,文件名的空白用空格(0x20)来填充。每两个文件名之间还有8个字节,即两个Int32。可以估计其中一个是文件位置,另一个是文件长度。+ _; j; d5 X# x' H) q) L

" @6 i- }3 D! n图2 Game.dat文件头
8 ~3 D' T# M  P% T% k' Z3 w9 M00000000h: 52 45 53 59 00 C2 09 00 00 88 47 03 00 4E 55 4D ; RESY.?..圙..NUM' j% }7 b; Q( \( g* g( w
00000010h: 2E 42 4D 50 20 20 20 20 20 20 20 20 20 20 20 20 ; .BMP            & P; j4 w7 @' Y3 b1 m7 _
00000020h: 20 4B 51 03 00 C2 58 01 00 31 2E 42 4D 50 20 20 ;  KQ..耎..1.BMP  
9 w# ~! {, T+ |00000030h: 20 20 20 20 20 20 20 20 20 20 20 20 20 0E AA 04 ;              .?
) K% t$ g* u7 I+ U' |00000040h: 00 2A 20 00 00 31 2E 57 41 56 20 20 20 20 20 20 ; .* ..1.WAV      
; U  s9 D  {8 S- O2 R. P00000050h: 20 20 20 20 20 20 20 20 20 39 CA 04 00 C0 58 01 ;          9?.繶.
7 _: F7 a5 b, i& Z. i6 R& G00000060h: 00 32 2E 42 4D 50 20 20 20 20 20 20 20 20 20 20 ; .2.BMP          5 h, w7 x% Z" L. F' b- I
00000070h: 20 20 20 20 20 FA 22 06 00 D8 AF 02 00 32 2E 57 ;      ?..丿..2.W
. T0 I) {9 D9 @/ o* N+ b. o1 R" E00000080h: 41 56 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ; AV              
3 t! H* [3 H0 h0 d' R' |5 [- C00000090h: 20 D3 D2 08 00 C0 58 01 00 33 2E 42 4D 50 20 20 ;  右..繶..3.BMP  
6 t* G$ ?/ S. L7 s/ \! s1 X000000a0h: 20 20 20 20 20 20 20 20 20 20 20 20 20 94 2B 0A ;              ?.4 Q2 U3 Y6 l6 {" H0 t; I+ E8 `
000000b0h: 00 1E 80 00 00 33 2E 57 41 56 20 20 20 20 20 20 ; ..
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

17#
 楼主| 发表于 2010-6-9 23:30 | 只看该作者
我看了1下,的确偏移量是差了1个字节。
4 u% W$ b* m" |5 w% x既然每个文件的偏移量都多算了1字节,游戏在读取文件的时候自然都会减去1个字节。; ^- ~" W- E- n) g3 Q
也许作者就是故意这么安排的。
回复 支持 反对

使用道具 举报

16#
 楼主| 发表于 2010-6-9 07:53 | 只看该作者
昨天有点事,今天晚上看一下。
回复 支持 反对

使用道具 举报

15#
 楼主| 发表于 2010-6-7 17:13 | 只看该作者
引用第11楼naptid于2010-06-06 22:55发表的 : * \+ m( v) ]7 F& \9 X( j0 n8 l8 t4 ^
利用quickbms解包,大概就是将文件包分析后,将其结构写成quickbms可识别的格式文件,程序会自动根据格式文件读取偏移还原文件名并解包文件,自定义格式文件的编写有点类似python,我没学过编程,不知这么解释对不对。

2 h* |) s. ^: S6 s$ n" `4 I4 q! B6 e; `
可以这样理解,把bms是当成一种新的语言,quickbms就是运行这种语言的环境。4 D$ ]' x) \/ f4 A2 C7 W7 L
这种语言针对文件的解包定义了一些函数。我们分析完包文件的格式以后,针对特定格式来编写.bms脚本,3 n- J6 m# _+ |( ?0 [
然后放在quickbms环境下运行,quickbms充当了1个命令解释器。
回复 支持 反对

使用道具 举报

14#
发表于 2010-6-7 14:39 | 只看该作者

回 12楼(shane007) 的帖子

我分析了下这个小游戏,试着写了个BMS文件。文件是解出来了,但无法打开。后来想到了偏移不对应问题,bms是按理论偏移解包的,所以会出问题。原来文件ID是RES,三个字节,我在后面加了个空格,并修改BMS文件。这样理论偏移与实际偏移就对应上了。然后问题解决。
9 J# `8 n- `+ g: h我就不明白,打包时时为什么要偏移不匹配呢?这是不是个常见问题?
回复 支持 反对

使用道具 举报

13#
 楼主| 发表于 2010-6-6 22:58 | 只看该作者
引用第10楼canmover于2010-06-06 22:36发表的 :
/ U( P% W. P; O3 U再往上还有个问题,麻烦看一下。
) L% e0 u& e/ D2 L: O  Bquickbms用的是专有语言?还是其他通用语言?

( ]( B7 t, b0 g4 U, U+ u+ n, z7 t. Q3 z. d. Z7 Y% n
嗯,好的。上面那个问题我看一下明天告诉你。5 k4 T+ Q4 A- e# H9 T
要是我忘了请提醒我。
2 t/ ^# J. h: y. D3 z9 t
- @) v1 j  o2 B  `" fquickbms是老外开发的一个制作解包器的工具,他们自己定义了一种bms脚本语言。
: f5 N2 j7 ]3 F, A* N' B7 N工具本身是c开发的. 用它做解包器很方便的。
! _/ Q8 u) X5 `* n
! _% A9 x; U8 h( S你可以看看这里,官网,有好多例子的。) e; h( D6 v8 }: a3 c
http://aluigi.altervista.org/papers.htm
回复 支持 反对

使用道具 举报

12#
发表于 2010-6-6 22:55 | 只看该作者
利用quickbms解包,大概就是将文件包分析后,将其结构写成quickbms可识别的格式文件,程序会自动根据格式文件读取偏移还原文件名并解包文件,自定义格式文件的编写有点类似python,我没学过编程,不知这么解释对不对。
回复 支持 反对

使用道具 举报

11#
发表于 2010-6-6 22:36 | 只看该作者
再往上还有个问题,麻烦看一下。. _1 _3 @* o7 h. o5 O/ J5 L
quickbms用的是专有语言?还是其他通用语言?
回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2010-6-6 21:55 | 只看该作者

Re:回 楼主(shane007) 的帖子

引用第8楼canmover于2010-06-06 21:51发表的 回 楼主(shane007) 的帖子 : - ~, P/ F( Z! Q$ i9 Y, V
解包器该怎么做呢?
4 Y* W* l4 y* {
: E9 l: o$ _& @" [4 p

( B9 L8 L/ M  W可以用quickbms制作,在论坛检索一下即可。
回复 支持 反对

使用道具 举报

9#
发表于 2010-6-6 21:51 | 只看该作者

回 楼主(shane007) 的帖子

解包器该怎么做呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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