老外放出了一个静物2数据文件样本。
8 ?0 j! L( w8 ~7 n# Rhttp://rs706.rapidshare.com/files/216482719/Sl2data.zip 8 M3 x# b5 ?. K& }: b4 G2 j
有巳さ呐笥芽梢匝芯恳幌隆? : w; ?9 J* n' r( p# @6 Q D
f8 t# o2 I. n5 d$ s0 y-------------------------------------------------- ' ]6 H$ _6 O% b* s! i8 L ?1 e' ^
2009.4.4 第1次更新 z. R( l# Q' C3 ^3 z/ x- t
老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。
5 I u: G" U+ M. E# c2923BE84E16CD6AE529049F1F1BBE9EB
. g2 e1 y! ? ?; I/ a/ m, a3 T: l+ x( q b+ `
--------------------------------------------------
$ n6 ^3 w+ L% g4 }4 A$ S# q: A2009.4.4 第2次更新
9 `1 B1 `* z$ ^+ r9 w测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
* W/ p! r8 I: L+ o! Q放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。
1 a9 L# h2 \! c7 y5 G' T6 S( ?, a s6 _; O! D ~
-------------------------------------------------- 1 m# }6 o: v+ P9 ?& r- B
2009.4.4 第3次更新 ! U3 y, o* R; t4 q
静物2采用wild-dna公司开发的3D引擎。网址如下。 + _( ~0 i, X3 w. Y
http://www.wild-dna.com/main.html & s @7 R# h( h3 `) G
http://www.gamecostudios.com/xcengine.html
/ T4 e' O( ^' {% |3 n
2 y6 |* H5 ^3 S( s9 ^4 \. e-------------------------------------------------- : W' E# _1 B1 a2 \5 j
2009.4.8 更新 0 m2 X8 Z _7 D
老外公布了静物2包文件的格式。 ! N! X% M0 d6 `6 E5 F
0x04 //"GMGB" ( O" d( B; b8 Q) p1 ?& W8 A) O
0x04 //Number of files
1 |0 t+ h( H* F
7 J% x8 Z; o( C/ P( K! u: {for each file {
3 H8 T0 U/ A4 r; t7 d5 g6 q: M" Q$ s: ^( i) E% W% n0 L
0xX path and filename
4 C C1 q" G) E X" S, {0x01 0x00
8 f! @+ T4 s# z& W! H6 p4 |0x04 file length
# L2 r, p; p/ m& @% k4 W0x01 0x00 3 U+ r& `# u% A5 T0 N7 c, T; ^
} 3 x5 U% l' l0 f+ {9 R! F4 n$ z
+ u! A$ ~! Y- V--------------------------------------------------
( M$ R7 U P5 n: j `8 `# o2009.4.17 更新 , G0 ]/ ]$ j1 J3 _3 l/ V/ [& R
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 . r6 {* \& [" h4 S( y5 K
用法如下 & L4 V8 o) F$ i5 y' E( `
quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder $ J) k8 y8 P+ n' u( Z J% M1 F; ]
1 z! I( F5 f, J) I-------------------------------------------------- ( ]4 Y2 Z* T; D; b6 a3 e$ l/ i
2009.5.16 更新
& e. k. x# f8 B0 |最近又有一些细小但是可能比较重要的发现。
8 |& S9 |& i9 u) G: i( ~$ }3 @用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。 7 g1 V+ n4 ` a
第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。 ' Y' X$ l$ T; w+ F3 Q! U
弄清楚这谜一般的字体来源是接下去要研究的课题。
! s# [! Y- H9 m% ^下面是此字体画面抓图。
: U7 p) U2 S- I, T3 s% c 9 P9 {5 ~/ l' V* }/ N
, C7 A+ G4 `$ ?4 p--------------------------------------------------
2 ^6 ], q! e7 Z9 N+ a2009.6.26 更新 2 k) @1 B6 d3 S* O) c) ]1 {# n' s
经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 3 u" ?" u9 e" e- m# a) L
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。 - \ r; c! Q5 f. c& w6 f
放上抓图
) n5 H {% ]; a0 O; w$ z5 [5 p
' V) w0 Q( z6 F9 o* h
/ F( R8 }) q4 Y k--------------------------------------------------
% J6 C0 c8 N; g2009.6.27 更新 % u8 w& g& n' e0 W+ P
我在另一台电脑上试验了一下,可以显示出正常的英文。 ( x( `* @7 }+ o, ~( z+ Y) K& q
我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。 ( M1 j1 C% \( w F9 J/ |8 T, C
我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。
' x$ s6 `$ A2 K W& K; U& T肥牛如果有时间的话,希望能尝试一下。拜托了。 * B6 _/ [- d9 M# P6 p" g
需要修改的可能是xcEngine.dll这个文件。
9 S6 U5 o# ` L$ o# F4 ?* N4 _& A& m* z
抓图如下,显示出来的是 汉 这个字的低字节部分
/ a0 P" Y& z6 A: z' y. P
- e6 k& c% t/ F# @8 Q* o8 q2 O4 \( F2 s. l9 u4 O
-------------------------------------------------- 5 A2 b: Q4 ?' c- t9 x- M+ B
2010.2.2 更新 . D/ m$ Z5 s; t: B1 b L/ }2 l
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。+ i' a6 F* K) x' s) i
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
+ N* t0 J x7 e D* C把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |