老外放出了一个静物2数据文件样本。
; t+ m& n0 \, ]http://rs706.rapidshare.com/files/216482719/Sl2data.zip
% H- b3 R+ q M: x# E5 b有巳さ呐笥芽梢匝芯恳幌隆? & L6 W4 J1 t t
$ {8 b( x$ j) A h# I--------------------------------------------------
, A* }) A- p: W( ~. g2009.4.4 第1次更新 {& R G+ r1 Q7 Z, m, Y' j" U
老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 8 ^/ v& r7 b. U8 e) l
2923BE84E16CD6AE529049F1F1BBE9EB A, u% Q0 d. f
% @2 N9 L W! C--------------------------------------------------
& G3 y) G0 W' Z: H# t2 u/ [2009.4.4 第2次更新 - f3 V& A5 h0 o2 O0 H# l/ o5 E
测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
3 _9 F7 K% S8 E2 f# R* B% X放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 5 Q L4 Q$ O S& a* r
( a6 B% o/ _( `: }4 J
--------------------------------------------------
; c6 s( A" \# @$ i; w. C$ F- p2009.4.4 第3次更新
% O" [4 s( [4 g# B静物2采用wild-dna公司开发的3D引擎。网址如下。
8 r, F7 C5 G4 F( R% jhttp://www.wild-dna.com/main.html
3 F- N; d l1 A5 @3 khttp://www.gamecostudios.com/xcengine.html
. o+ o+ J7 f4 C/ b4 s5 h) M1 a m) ^ P" z* E
-------------------------------------------------- - u; [' q/ ^: ~' E
2009.4.8 更新 $ T- W' d4 V% O+ t- G8 h; k( }
老外公布了静物2包文件的格式。 6 c$ f: t4 @- l& d6 h# v
0x04 //"GMGB" $ z3 K9 W- A7 c( o( P
0x04 //Number of files . a, t$ d( G D8 J1 u
5 u' }- _) y# R5 ~
for each file {
9 s, ^5 {: r" A; ^, i$ v/ k
5 C P5 t- B0 r) H# G0xX path and filename
$ c3 F3 f- B0 u+ Z0x01 0x00 1 o' z& c: F p8 `! S5 H5 T
0x04 file length
) e9 B8 J: b" h& I0x01 0x00 5 P! `2 h) v% k+ d, v- G
}
6 [6 J# U9 b- w3 C8 l) i+ C& _) b8 I- G/ {$ V5 ]: {
--------------------------------------------------
" X3 Q) d# J2 m2009.4.17 更新 4 u2 f) @1 j: H3 o
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 0 a* s3 i, A! L
用法如下
# @* S, G' H/ U4 ]% F( rquickbms.exe stillife2.bms c:\Sl2data.dat c:\folder & r9 l% a: c" a. \/ j
5 a+ ?' l7 [; r; h) i--------------------------------------------------
7 C9 A: _( _: P+ T8 h5 N2009.5.16 更新
- P& p! I% y) d$ u最近又有一些细小但是可能比较重要的发现。
' V1 E& ], v/ o1 [3 m3 @! H用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。
d2 @4 v9 P" k# ?& L, j# }第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。 7 I; h+ R; v* m# F( Q9 k7 r( b
弄清楚这谜一般的字体来源是接下去要研究的课题。
+ s$ k- G4 S2 W8 D, z2 a5 u: Z3 h6 [2 w下面是此字体画面抓图。 ' ]; d% M j& B# h' I
. \! n9 R7 q5 l0 g1 q Y8 j4 ]. B8 A8 Y8 W# {5 y( q5 |
-------------------------------------------------- * T$ `5 j" D3 h% @; `; _! l+ S
2009.6.26 更新 % p, H$ k/ M, a
经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 & g3 P3 x! O. {" c" I" T6 L& S
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。 3 U* Y( \( t9 o4 N) S3 m9 {
放上抓图
9 ~9 y7 H: v3 n: z x5 B0 _% R+ G7 C; b- V7 J
$ L7 G9 M* J' j9 p ?
-------------------------------------------------- ; f9 P( N& s' c
2009.6.27 更新
+ C3 Z% ^2 t6 K$ h/ l3 [ T. h0 [我在另一台电脑上试验了一下,可以显示出正常的英文。 8 D& ~- }5 B# e0 [3 x# X
我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。 9 x- ]2 |0 @6 ?( R2 v6 N! {
我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。 , E0 m* Q. t" k% A( S" H
肥牛如果有时间的话,希望能尝试一下。拜托了。 n3 v" w- u1 a( F8 s
需要修改的可能是xcEngine.dll这个文件。 v, s% T7 F9 d+ @/ \2 Z" B
- E" g$ ^" J4 y
抓图如下,显示出来的是 汉 这个字的低字节部分
1 E' R( L9 v1 b$ q3 y9 H
6 a! E: o! B' g5 G( S4 w- d, X
& O7 [ T0 b% ?2 `. k--------------------------------------------------
) X# T' m+ t( I0 c- }2010.2.2 更新 ) ^+ k" C3 m* A: x# g7 |" H
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。
. x: ]+ T5 M( B# L研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。( R5 O' R' E# G5 H6 z, l
把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |