老外放出了一个静物2数据文件样本。
( a9 T; [8 s9 c3 T# ?http://rs706.rapidshare.com/files/216482719/Sl2data.zip
0 M) r( v, }/ c# Z3 k% H有巳さ呐笥芽梢匝芯恳幌隆?
3 N. o0 C- f# n. @# i# W3 L$ ] W7 i5 u* z
-------------------------------------------------- , J4 X% O# j% Z! ^* i F2 Y
2009.4.4 第1次更新
; M; S2 O5 U* g; @* x; a+ g老外放出了静物2包文件的异或key,据说解密以后文件的格式很简单。 1 \. z- K0 R+ g" H/ R
2923BE84E16CD6AE529049F1F1BBE9EB
6 L* H2 w7 `; K5 ^' d8 G( ~7 f7 I1 M! M: i. }( I
--------------------------------------------------
& F3 a4 k; B% \& I" a2009.4.4 第2次更新 3 L" g ]2 _9 M {
测试了一下上面的异或key,结果正确。解密后的文件为不压缩的简单格式包文件。
! T5 b! C3 b3 j& k放上异或解密工具,在工具包里有一个例子,异或key就在key.txt中。 6 [7 a; a6 f/ K6 j, u: m" p
6 V% ~9 o) c4 u& I( P1 Q- n: D
-------------------------------------------------- 6 U! V3 J6 _9 C$ @8 r3 G
2009.4.4 第3次更新
! W; Z8 P0 J/ |: {8 Z3 {# n静物2采用wild-dna公司开发的3D引擎。网址如下。 L9 ^0 [. E% s. \7 @4 k4 d2 C
http://www.wild-dna.com/main.html
8 e9 a" ^3 G. _& d8 [- E% R" Yhttp://www.gamecostudios.com/xcengine.html 6 v/ ], R" P k8 T" `7 y' X
( {6 r' q4 Q( y0 |3 C( `
-------------------------------------------------- * w: a4 k% g; ^9 k1 t
2009.4.8 更新 " K1 r/ x$ l3 f: k) u3 h& A
老外公布了静物2包文件的格式。
* P% j. I5 V/ c7 M& E6 a0 R) |, C0x04 //"GMGB" # j$ m, G+ l/ R/ z, ]
0x04 //Number of files
& h3 q1 x% R. o5 Y$ w. S |9 E: D" G# ?; N# _5 u1 t
for each file { + j. s* T' H- K
8 z/ F9 z& Q' F) S4 E$ H
0xX path and filename 6 t# K# p2 @- @8 \" h7 _5 l
0x01 0x00
9 V1 x9 j- M5 O$ l+ y0x04 file length : G( u, b! w6 K; B5 d
0x01 0x00 & W5 X& E( c9 F# j- N2 x4 i1 N
} * X( b, R2 \# {
# B' g; Z! J2 L
--------------------------------------------------
# Y+ ^: B+ ~; ^( N7 l) G+ Z2009.4.17 更新 . ?/ L" W( F! v. A- |2 {. O8 x
老外动作很快,通用解包器quickbms发布以后很快发布了静物2的解包脚本。
! Z# X& E. z1 Q0 K& s5 N# X( G# q用法如下 4 N0 M7 j# J- d: t' u6 H2 ~7 `
quickbms.exe stillife2.bms c:\Sl2data.dat c:\folder + t* j0 {, i6 P( \
* P& ]6 Z+ ^1 z3 i9 e2 ]--------------------------------------------------
4 h8 u3 d; X# a2009.5.16 更新 # T( D; A- s1 E8 w2 K8 j; z
最近又有一些细小但是可能比较重要的发现。 $ M& X" h3 ~* l
用filemon跟踪了一下发现这个游戏支持读取解包后的字体文件Sl2fnt.dat。 & t; O; K9 F' P
第2个发现可能很重要,我把Sl2fnt.dat改名后发现游戏竟然能正常运行,此时使用了一种奇怪的字体。此种字体和原来的字体明显不同,并且显示有些不正常。我怀疑是某种系统的TTF字体被强制用不正确的参数显示而导致的。如果真是这样的话,我们无疑看到了一丝汉化的曙光。
# `% V% J) G( i/ n. z弄清楚这谜一般的字体来源是接下去要研究的课题。 8 r$ L1 s+ i- y u/ r: ?. }
下面是此字体画面抓图。 ) V) Y" j9 ], u8 E0 \3 G2 r
5 X8 b$ X$ }: _# Y
/ t6 i. W3 _+ s( v-------------------------------------------------- 2 G% O+ _0 p. R7 X) |
2009.6.26 更新 4 U+ @, H0 u3 a6 U: b; p8 R
经过老外的分析,把Sl2fnt.dat文件删除以后,游戏会自动寻找系统字体arial.tff。
: a; _: g. {$ n' O+ ]8 @$ d老外还放上了清晰的抓图。就是说我们目前已经可以把静物2转化为一个使用TTF字库的游戏,如果有办法HOOK显示函数的话,也许可以用比较简单的方法实现汉化。
" r& \6 X* Y/ u9 C放上抓图
& T5 F9 W! p9 ^) b; v* n0 V
9 ~* L) C. f |$ T1 o) W. ?" d( G' r6 G8 e( g3 W+ m
--------------------------------------------------
& W3 S: e. e! S) e2009.6.27 更新
; `1 i5 ?/ W, o; L( V0 j- b我在另一台电脑上试验了一下,可以显示出正常的英文。 ( T4 @8 Q" N/ Z1 [3 F" t
我用上面的异或工具解密了字幕文件Sl2data.dat,然后写入一个中文字,再用异或工具异或一次。发现只有这个字的低字节被显示出来,高字节被过滤了。
# `5 ^7 j, _7 S3 J' U我觉得分析到这里基本可以知道实现汉化的方法了,就是用OD分析一下,找到那个过滤点,使游戏一下子读取2个字节,这样游戏应该就能显示出中文。
# a" y& i( N! t肥牛如果有时间的话,希望能尝试一下。拜托了。 " H8 w; f# l0 z5 _" `' R9 t
需要修改的可能是xcEngine.dll这个文件。
+ j7 A* q. u( ]$ r5 Z4 [+ B
; `4 n' W, T5 d/ a( I抓图如下,显示出来的是 汉 这个字的低字节部分
8 ?7 ]" j6 o4 ^6 t) F& A* [- ]+ n
7 K# ^3 y2 ~" G: o* S `; Q0 M
; J: i$ T* ^4 T* b& @5 O--------------------------------------------------
. X/ |4 s2 Q6 A1 L2010.2.2 更新 , z8 z. ~% R9 _
我电脑上的静物2,在一开场2人打完电话以后,就会崩溃。
8 L9 H' \* M4 B' ~$ i# c% v研究了一段时间,发现可能是我显卡较老,只有128M显存的缘故。" x5 G7 d/ @& e! d. _" Y, }* i
把option的Shadow Quality改为low以后,解决了上述的崩溃问题。 |