老外放出了一个静物2数据文件样本。 , b5 k$ V8 X9 n6 T' d ~8 m0 f9 n
http://rs706.rapidshare.com/files/216482719/Sl2data.zip $ d, U2 r5 F8 G- Q U/ N( x$ I2 d
有巳さ呐笥芽梢匝芯恳幌隆?
& Q' X; E3 L9 H- c& Z' ^+ E: i4 }& U3 L
-------------------------------------------------- % o; n2 O6 L1 N
2009.4.4 第1次更新 + n6 l5 ^! f0 H5 m3 t
老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 + S& X( L3 y3 D1 n2 r
2923BE84E16CD6AE529049F1F1BBE9EB
) R a$ l, k. d7 K: O: u& ]6 q0 I8 U3 A9 h
-------------------------------------------------- ' J, j, Q9 w; X* D; [' v
2009.4.4 第2次更新
0 p0 O2 o0 f& W. X- e) A测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
# e, @" x4 e5 f放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。
% q5 o8 W) `* q- w% v& k- e" }9 |2 t( a" c' b4 h
-------------------------------------------------- 6 E% Y3 f( \ k( S9 ?# z, S
2009.4.4 第3次更新
- B) L+ }# Z5 p0 q9 M) b静物2采用wild-dna公司开发的3D引擎。网址如下。
7 \1 o2 f* t( u& c: H) L% A, j* j- Chttp://www.wild-dna.com/main.html
& Q: W' s. C# K$ N2 ohttp://www.gamecostudios.com/xcengine.html
7 S- D" ?! L' l! E- t' h4 l' M0 B& m; \1 g L
--------------------------------------------------
1 ~* e! a$ W' H2009.4.8 更新
% S. J9 A$ w' }. g4 a老外公布了静物2包文件的格式。 2 ?, X; z% o8 G T3 S4 E7 y
0x04 //"GMGB"
' ^# X; O+ u9 S% Y. q0x04 //Number of files
& r0 }- W) p2 P! }
& V: J8 k, K) F' Lfor each file { : f1 U% }4 X6 g1 t: E, o+ l
, Q. H" @4 W/ U- r: B/ g7 b
0xX path and filename
1 c3 A( y" L, W( t c! x0x01 0x00
1 r) }( u1 _. ^9 x" \: C0x04 file length
' Q, h8 L6 [! `0 K. ~/ I3 J+ R6 n0x01 0x00 ' E* p! g1 T) \/ z4 }" P% _
}
2 p) ? w+ T' m5 {. Y
. m: {1 {3 x1 @# P" p--------------------------------------------------
) c, m( z' o7 a T2009.4.17 更新
' Q( R3 G' h3 T) {) P( U) D老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 / s4 ^$ [ E. X2 e
用法如下 : i+ m5 x9 H$ p9 A3 T
quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder
8 U+ _/ Q3 _2 Y- X& p Y
2 @& `% G& G$ A' v1 H--------------------------------------------------
: h5 Q0 h" A6 j& k" O1 V/ H) b2009.5.16 更新
0 V; u# `- k) L; i8 U4 @4 t最近又有一些细小但是可能比较重要的发现。 0 {1 z1 v5 I1 ^6 t g7 k
用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。
; P# O" ?* t, v; z# I第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。
; d7 J# G" Y. p# m. S弄清楚这谜一般的字体来源是接下去要研究的课题。 - x$ w8 X, m* T) L- ?
下面是此字体画面抓图。 1 c1 T: t d. ^% ?$ |* }
+ O( y* ?1 W. t2 J8 i) Q$ g! J4 m9 u0 m# C
-------------------------------------------------- 6 K5 ^5 |; X4 J; E. X5 H. v
2009.6.26 更新
8 D q; o" N" s+ H经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 + | x4 _; p8 v4 {- E/ e+ R
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。 , m F- P3 K, K0 p5 q
放上抓图
% G R, L0 j5 K1 m- B r& [
Y7 A" L! P0 A$ e7 ^, h0 m5 [
--------------------------------------------------
) R$ e! C1 y9 t2 l2 U" K% }2009.6.27 更新
" D$ j& J% H! P. c1 G我在另一台电脑上试验了一下,可以显示出正常的英文。
( S5 M2 g; |% S我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。
9 H7 [! u* K8 T3 m% a我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。
; t2 c# b: ~; r5 n5 m肥牛如果有时间的话,希望能尝试一下。拜托了。
# K$ \5 @8 |) ]" T3 Z需要修改的可能是xcEngine.dll这个文件。 + m: G$ @+ |; n' j( N0 Y& s
. P; W8 X0 c' }) [( h抓图如下,显示出来的是 汉 这个字的低字节部分 $ c" x- O' V. A
# m* G5 g! {& i1 J/ G. d7 `8 Y4 p7 Q* \7 ]
-------------------------------------------------- 4 Q) Q8 n" ? ]! _. u4 x
2010.2.2 更新 * N8 C& M; [5 A) l
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。
6 X: L4 {3 L# b. `. v$ e0 x研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
1 [, M l1 c; r8 t* j {把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |