老外放出了一个静物2数据文件样本。 , R4 L3 Z* L v( @$ [* S
http://rs706.rapidshare.com/files/216482719/Sl2data.zip
3 E+ W# a% e: r# \5 p有巳さ呐笥芽梢匝芯恳幌隆?
/ N* G- B$ H' D7 ?+ k+ B u2 s: {1 M C7 s4 K
--------------------------------------------------
4 R2 S! p. r5 {' l" `4 f6 L2009.4.4 第1次更新 4 P0 L7 x- a! w5 g2 e
老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。
$ c9 U9 o) e+ X+ {& Q2923BE84E16CD6AE529049F1F1BBE9EB % E# o+ h( C% b3 p2 _
6 u. @0 q0 R( t9 [) ~' D+ E
--------------------------------------------------
- E, h- D, d/ i5 k/ m8 z; t2009.4.4 第2次更新 : G" ` {8 f' A* B5 [3 l7 t" l
测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
6 g4 B: H" M% I5 C7 H放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 " u& Z3 _7 R* ^+ N
7 L' h4 Y; [+ d3 @-------------------------------------------------- 8 O8 n& U; d# q$ r7 i
2009.4.4 第3次更新
7 d k+ U2 x9 j( X, r静物2采用wild-dna公司开发的3D引擎。网址如下。 % ~$ ?; m3 R6 w; N6 j/ Z! X0 X
http://www.wild-dna.com/main.html
6 E3 g F" v2 r. xhttp://www.gamecostudios.com/xcengine.html 3 m( q% u/ h; l9 q' X9 L- m5 P; G( N
- F' o- t- `8 h: o, u+ c6 j+ ^$ t--------------------------------------------------
+ E: ^- o2 c5 {9 U) \2009.4.8 更新
7 |" ^4 X0 w# k) A0 `% `老外公布了静物2包文件的格式。
}- o9 M" T' ~) Y0x04 //"GMGB" : w6 i: k8 [+ b9 I! T
0x04 //Number of files " Q0 Z! j1 Q7 W( L1 T7 Q
( C0 v0 z3 X1 S; n W. H
for each file { 8 t* }) l( r, \
6 q7 o) Y8 n3 x+ ?1 T @" C& K0xX path and filename ( q) m. k- P: v- }8 V
0x01 0x00 " [/ u& h L$ R& I# L% G l8 r
0x04 file length - c3 \3 g0 k& b1 p- R
0x01 0x00
# M+ q$ E. h+ ]8 d3 s; m$ M7 x ]. O}
# R7 |' r/ _, @# }( `9 Y) a. i. x& Y& _& l$ O# \ _) s( S
--------------------------------------------------
# w7 |" N& Y: b- B- Q8 H2009.4.17 更新 # p9 J; Y- G3 W1 [
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。 % X( i% C4 C) |
用法如下
2 i- Y5 `' m- X5 I& ~' K2 S `quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder
+ N. j* c7 J( b# r+ L
5 z9 Z/ A# ^/ {- R: \7 ^' M' a. @2 O-------------------------------------------------- % Q7 T7 ^% K6 f" v% o
2009.5.16 更新 ( b& L% g; V( u
最近又有一些细小但是可能比较重要的发现。
; R( A+ I+ F+ W+ ~0 [用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。
! t/ G" [. Y) h第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。 ; v0 k: K: ~' y9 o" \) ?3 v
弄清楚这谜一般的字体来源是接下去要研究的课题。
: c+ ]+ s( }& g1 q0 Y下面是此字体画面抓图。
+ h1 Q, w0 }. i( N8 e) j; \2 R4 r, j . ^) I" U$ c; {% w
9 d% y# j, |( X' Y4 |
--------------------------------------------------
0 R$ z# A) l. O. i5 ~* m% a2009.6.26 更新 , \0 ~1 D. ~* D
经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。 / _+ g* w x! z$ {* H' Y" d7 p* M/ s
老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
" Z1 z: Q' r8 ^& B( T9 v, {0 |放上抓图
5 { ^+ }+ M1 \% v& [
2 _# I( G) u( y2 W5 O9 @: V4 e- q) [ I, ^( c. {" |1 V
-------------------------------------------------- 1 p# L7 V+ q+ i0 C2 }4 r$ B
2009.6.27 更新
+ K: x, @- V( \2 c我在另一台电脑上试验了一下,可以显示出正常的英文。
3 k$ U8 H) z( |# J! Z) P; G; ]我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。
" k3 u7 s- ]1 A0 ~ h7 p我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。 7 ^5 |5 a* z; P. i- V- a/ w
肥牛如果有时间的话,希望能尝试一下。拜托了。 6 ]( A) q& b1 I% K
需要修改的可能是xcEngine.dll这个文件。 $ t) K ?5 |: r$ q; F. D' l4 k7 I
; V; d8 o X, w& @% N
抓图如下,显示出来的是 汉 这个字的低字节部分
5 g% b7 [# j& }: f3 D0 X- d$ f2 J. [2 @+ S+ g
' u: y c8 `, |' I/ u* I5 _--------------------------------------------------
" f7 y* j P' n/ R! J) v- j5 ?( p2010.2.2 更新 0 x! N$ K0 B# _) H2 H$ b; v# m. b5 a+ |
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。, S( ~ G9 w$ ~, Y
研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。
0 F; L2 k5 R4 w1 V把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |