老外放出了一个静物2数据文件样本。 7 g! b9 f7 _8 _+ q$ _; u( g! W
http://rs706.rapidshare.com/files/216482719/Sl2data.zip / n4 x, Q Y3 \/ B7 k; i- e% a, _9 |
有巳さ呐笥芽梢匝芯恳幌隆? 3 |5 N+ \% n% Y# H9 J0 r. a* z
" |2 C' ^9 ~% ^ @) T5 E
-------------------------------------------------- * j' u1 m* @; F- z) B& g2 ?* ^' i
2009.4.4 第1次更新
' T! K& k* @+ z _老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 9 v4 |$ ~5 s7 O. \ F
2923BE84E16CD6AE529049F1F1BBE9EB
$ _' S0 ^6 M9 _7 E7 |# y% @3 ?0 b5 g0 p, O
--------------------------------------------------
0 P0 F8 s, X) z; h1 J2009.4.4 第2次更新 - n0 c' A1 b# e; s" X4 g5 @, g
测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。 ! l# M2 d) C" z. c8 f+ G& }
放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。
2 W1 s" K# t0 Y6 L Q/ u6 P" a S- D: n U2 K6 {* ~. s
-------------------------------------------------- ) g4 O9 v. l& O2 K
2009.4.4 第3次更新 ( ^, s6 R8 w! F9 O/ O( K
静物2采用wild-dna公司开发的3D引擎。网址如下。 / I5 p T2 A. c$ F: O
http://www.wild-dna.com/main.html 3 t& v/ l8 h0 t, a
http://www.gamecostudios.com/xcengine.html
% o3 \5 U# t( R* {" o
$ Q3 g3 i3 M) s--------------------------------------------------
: k ~0 T2 Y- M- R. |/ C+ _! N2009.4.8 更新
: O& ]8 M, G1 W& ?& [7 @2 @老外公布了静物2包文件的格式。
6 X$ d4 N6 i/ G j0x04 //"GMGB" 5 {, K( K* L& a+ h
0x04 //Number of files
7 O$ r$ ?* u9 P9 c5 T8 \
; k1 Y9 h2 s. S$ l% s5 e: ~2 @for each file { 9 { }9 ~# A3 W6 ^6 P$ I
" a1 J. ~ Z' c6 e
0xX path and filename 1 c% C5 T, ]8 J: Z$ X0 G
0x01 0x00 ' w' Z1 M; E# T" C6 i0 r4 v" t
0x04 file length , y. Z* P/ Y% s$ U7 e
0x01 0x00
4 w4 F' x0 H& j$ a# F7 ?}
- t& Z' a0 _3 A! _- w/ m# ~9 h$ x! n- \' r6 V8 I9 q4 c" A/ f) L
--------------------------------------------------
4 E* u# _" |% [* ]- y1 Q4 d9 O! [2009.4.17 更新
7 v0 U/ C3 T+ P( F老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。
9 T0 M6 M7 y+ O: D7 z, F! J用法如下
) X5 s2 H4 W& B/ r6 w- zquickbms.exe stillife2.bms c:\Sl2data.dat c:\folder 2 S- K" {" ~6 Y3 T$ H4 u# Y
8 B+ l+ u% K0 a/ ~% Y% ^( l2 j- `7 l* |7 d-------------------------------------------------- , u( U) j/ i; Z a( K% L N3 k3 \
2009.5.16 更新 4 b! G# n+ Z& R d
最近又有一些细小但是可能比较重要的发现。
& Z i3 ?8 g5 S用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。 ! `# W: k' ^- \ M/ T) K2 H- i
第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。 $ ~ P( Z2 @' D# D& }: R3 g" V
弄清楚这谜一般的字体来源是接下去要研究的课题。
( q9 C' C9 p8 K+ z! n下面是此字体画面抓图。
9 \4 A; K5 t$ x d
6 Q, l7 \" |8 Q( n) f
& r0 X1 u" d7 C$ T-------------------------------------------------- 7 x+ J" a4 x! D8 @ _" W3 d7 v
2009.6.26 更新
, u; n9 J1 l+ c( I5 N" h: T经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 + R# q9 F! R& b+ K% d, \) o
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
% ^% p$ L' p2 O6 `放上抓图
+ d! e! @; K8 }
# N, F) q& t7 J- O S' F6 g+ Q' K6 U: ~# { N
-------------------------------------------------- - C, u5 T T6 b4 A x" x/ \* ~
2009.6.27 更新 4 Y i; L" ^' ^* x" H% G
我在另一台电脑上试验了一下,可以显示出正常的英文。
1 w5 K: Q0 |) Z8 G; C& S+ _我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。
# l% {1 p K6 t$ j/ f1 |我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。
8 b% I% z- N" q4 m$ G$ m肥牛如果有时间的话,希望能尝试一下。拜托了。
$ _2 `: _% z/ `# J' B, z需要修改的可能是xcEngine.dll这个文件。
( r0 y3 Y+ v t, b! p' o
" @) D5 ?/ ^$ [' y抓图如下,显示出来的是 汉 这个字的低字节部分
# A3 w( o* |, z8 C& X7 i8 R! s) \% _; Q( E
. [' l5 |1 {- g3 o9 E0 o+ W--------------------------------------------------
" s: r. u2 C$ Q. b! C" y2010.2.2 更新
( C% c5 W7 x9 b6 Z我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。1 T" \6 x S$ R& N O5 k3 i2 c
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。$ @/ V- O" D2 b7 L& J
把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |