老外放出了一个静物2数据文件样本。 ; z, _0 f, p& O1 i# d
http://rs706.rapidshare.com/files/216482719/Sl2data.zip * ]% g" a) ^4 s7 t
有巳さ呐笥芽梢匝芯恳幌隆? 9 P8 `; `8 @2 {, }. E$ [+ a
* K% B; q! J; n--------------------------------------------------
) l2 M* J6 n7 X( b: f$ R1 H2009.4.4 第1次更新 : ]0 I( C9 Q6 y1 x$ p* o
老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 5 P8 U [' n$ ]( r: l6 V7 t4 s
2923BE84E16CD6AE529049F1F1BBE9EB 5 Z# }& a p1 X, N, k; s+ @% E- j
. H+ V, ]! T/ S: O" K, R$ L-------------------------------------------------- $ e1 y5 ^) }% w5 u9 j& w; k! |" R9 |
2009.4.4 第2次更新
! o) k: \ b. W6 `% J( r测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。 1 h! {, n+ i9 ?$ w& K$ i: W0 q* I
放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 7 J2 X. D- B' s' K* \2 m; H
/ c8 D- M$ `2 t7 q% r--------------------------------------------------
& Y3 a* n- y9 t: c" { I2009.4.4 第3次更新 0 H+ o" L0 Z6 |' k H
静物2采用wild-dna公司开发的3D引擎。网址如下。 ( Y& F5 y* |1 U) G* e. q6 {
http://www.wild-dna.com/main.html
/ l9 F K; g4 a: qhttp://www.gamecostudios.com/xcengine.html
5 n7 @2 v4 R! G5 m; X& k; h
4 x. k9 f5 ^! d" K--------------------------------------------------
* _0 z4 o4 e, p" D2009.4.8 更新 * Z; Q( j: j6 a! n1 e7 ?# O5 U
老外公布了静物2包文件的格式。 q3 ^5 A5 K4 ]/ R& j
0x04 //"GMGB" . k! U6 v5 `7 \ O0 n
0x04 //Number of files 6 n) f- n7 {3 a* ?
. F" p; K- n8 v2 S/ q' R* c7 V
for each file {
. \# @# h& T+ v+ ]4 [
5 @0 r( k1 W" z: a! u7 W0xX path and filename & ?2 ~7 N3 y" r, W C
0x01 0x00
5 _/ y8 f3 \4 ^& q% o) O7 h( Q4 H* Y0x04 file length
! u) h& D! I& D# V0x01 0x00
. [ F" K# y ?( w+ d8 Y}
* Q; }6 W9 Z6 j0 [. }' ?* d
, d* P3 s5 y0 S C- X+ p) x! S-------------------------------------------------- + Z( E4 c- ?' I4 W1 s" O
2009.4.17 更新 4 |& _) b s3 N9 V+ g# @1 c% J
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。
- V5 a1 _% @% n. x' S. L% \) y$ _用法如下 5 `/ a7 ]' _+ o
quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder 2 f; v+ H, M3 W
+ ?" Z. w" s, S# H7 ?! B-------------------------------------------------- 6 O/ P- U) a* M. A: u% w
2009.5.16 更新 # l5 |! ]' x4 [! ^ N
最近又有一些细小但是可能比较重要的发现。
+ |6 l( j7 f5 W5 \* I0 j8 p用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。 / z! H8 n6 h( {3 C* P9 B% S
第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。
, Q( M9 g2 A6 `* ^. S/ ? ]/ y弄清楚这谜一般的字体来源是接下去要研究的课题。 " B) l a/ U6 y {! Z
下面是此字体画面抓图。
. N0 o5 e: ^/ k- m8 C! {) C
5 Y9 G6 T2 v* C- e s4 |0 a
% Q0 d1 z5 h+ E V$ z--------------------------------------------------
3 Z1 ^, L B' q4 E8 g2009.6.26 更新
: v5 |$ k/ W! |* D经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。
+ e* k7 U e$ I, {老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
$ u* }4 E h# g6 h, |5 z- y2 x- T放上抓图
0 H* G# [2 N% S7 x( ?+ E+ D 9 D3 W, M) K1 x2 h2 C& ?
. f. R0 @& l9 D, N9 `2 n3 v6 I--------------------------------------------------
/ T8 @+ h0 q+ V+ e2 W1 _2009.6.27 更新
2 |; R5 A9 i" q2 x6 {我在另一台电脑上试验了一下,可以显示出正常的英文。 4 N8 }! V6 Y- l% E3 E$ N
我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。 6 |% s2 R1 @% W# Q$ x7 g: i0 s
我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。
* ?/ u: \( d0 p/ U/ r0 f* @7 S肥牛如果有时间的话,希望能尝试一下。拜托了。
j# c: j3 M! I! x需要修改的可能是xcEngine.dll这个文件。 . [7 S" o3 I/ n5 X6 M+ ^4 d
- e A( o" B* q- }3 o抓图如下,显示出来的是 汉 这个字的低字节部分
* ^7 V9 Y3 _2 Q: |
) b: u* m) A) y% m, \( a# Q1 w6 }: A6 D& L5 v2 f& T X
--------------------------------------------------
6 P# |% w) L/ H2010.2.2 更新 & b- [. t% H, w$ \$ P
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。4 \! e/ w* R0 J; B) d |
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
3 r0 R$ z' z- T- R0 l4 | k把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |