老外放出了一个静物2数据文件样本。
- x+ q# }1 R b4 J$ @http://rs706.rapidshare.com/files/216482719/Sl2data.zip 8 |+ d1 E3 |( ]# p
有巳さ呐笥芽梢匝芯恳幌隆? $ K) T3 T5 w/ s( s
. `9 C& b8 N! v8 i-------------------------------------------------- . n0 o( V/ z+ _0 Z
2009.4.4 第1次更新
( V" T4 J6 q% C3 k4 k5 j老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 ' T/ [% O$ z& \8 N5 i) i
2923BE84E16CD6AE529049F1F1BBE9EB 1 r) d9 ?5 ~1 r& a+ k9 p
) k! l& X/ c7 U
-------------------------------------------------- * S0 ^" i+ K) ~+ k& f \$ c
2009.4.4 第2次更新
' C; e9 F: v4 A' V* r9 I测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
1 I) j; P( k! h! k- B1 j% O" u3 T放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 ! I7 z- f' _$ E, T* q
3 w7 C* i! h: X2 C9 H% O9 p
-------------------------------------------------- + g6 [8 Y9 y; l; T6 M* a
2009.4.4 第3次更新
- e2 X; i7 s- C' ^+ L静物2采用wild-dna公司开发的3D引擎。网址如下。 ! x6 _) q) u2 Y, K, |
http://www.wild-dna.com/main.html 0 F$ N1 w- F. m! | D5 {' e) U
http://www.gamecostudios.com/xcengine.html * ]6 o1 o1 z p8 ]. U$ c
- h _$ z& K5 R% O0 q# Y2 b7 y/ W--------------------------------------------------
* o& z4 l1 T) t2009.4.8 更新 # U4 z( J5 V3 |" ?; b
老外公布了静物2包文件的格式。 2 P% c# [, X3 d; M3 w
0x04 //"GMGB"
# u, A) k H2 Z! v, c! B1 i0x04 //Number of files
' u! j( [% b | G* `/ Q$ Y. R5 g4 x& M7 i# j. e
for each file { * G# r" z- o: c% X7 h$ {- M3 \6 r
/ M/ j5 d9 H' ^( j
0xX path and filename ; v& I9 m q5 I" F2 ~. l) Y
0x01 0x00 2 e% Y7 }& C" u! R! T4 s
0x04 file length
- h+ d) x& U3 W5 [9 D" \0x01 0x00 : ~/ m: V- d; `4 _6 c2 _( \# ^
}
7 Y7 v: z u* Y1 W6 T
* E8 J. T0 c" z3 g L& U1 _- L" z-------------------------------------------------- # l3 e p( w) W$ q* r
2009.4.17 更新 1 j' ^2 w7 U1 [3 K$ J3 \8 y
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 $ s; W) r* d7 x: m
用法如下 $ V+ i/ i) {" K4 P# W
quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder ! Z% b2 I# W; V T( _! i; o( {! a
+ N! h8 ]+ B, M! S1 b
-------------------------------------------------- ^+ {) I* i8 o
2009.5.16 更新 ( u$ G6 [8 n# ?" Y
最近又有一些细小但是可能比较重要的发现。
% p9 ^* p! Q! W$ S8 v用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。 $ p# v$ s d7 w! O
第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。
/ U* r; C! s; V弄清楚这谜一般的字体来源是接下去要研究的课题。 8 e7 h% D$ g, P; }# G$ n% f$ R
下面是此字体画面抓图。
$ T( j! K3 E5 b( U8 S; O
% t- n* Q( }' [" i% c9 v6 Y/ r- n3 B! p) }7 J
--------------------------------------------------
: [! f( `5 H$ a2 U) I$ P4 z: w2009.6.26 更新 , F6 }/ v# @; |( f& B
经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 4 K v4 w; t2 z# ~; n% s% Q6 m
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
/ w- W* j6 ?+ y, Q- J放上抓图 , @1 {! o9 G7 g# f6 ~) o1 l- h" \
1 p( ^) h4 Y' m6 X- P0 D0 x& G$ Q
6 l+ H5 h" J; p--------------------------------------------------
7 c' d7 I2 Z& m2009.6.27 更新
* I% ^( h" a; [1 o' n) A我在另一台电脑上试验了一下,可以显示出正常的英文。 ; Z' |' n* @4 [- D( i/ ~
我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。 # m0 N/ O9 a; t
我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。 4 o" u! w6 U R. Y) _
肥牛如果有时间的话,希望能尝试一下。拜托了。 5 {% M+ ]2 _. P9 n% Z y f# Y1 P
需要修改的可能是xcEngine.dll这个文件。
* r( X' k2 [2 R8 i. ]4 G2 ?' F& O; H5 S& y/ A" r* t
抓图如下,显示出来的是 汉 这个字的低字节部分
3 P. H3 @7 h e! m' l$ C3 I* |) v g, g9 D6 w
+ x; ?$ X9 J/ [6 g-------------------------------------------------- # `# h5 J; a7 d, o" J; ^
2010.2.2 更新
- L! C1 T3 h l+ q% p我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。' C6 I8 ]* W7 Y4 M: j/ S
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
/ n5 x {! r6 R) _7 M5 d4 M( r3 U把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |