设为首页收藏本站官方微博

建议 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

[复制链接]
查看: 326|回复: 0
打印 上一主题 下一主题

[建议] 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

跳转到指定楼层
楼主
发表于 2023-8-26 16:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...

本帖最后由 shane007 于 2023-8-26 16:14 编辑
! j) q4 G( Y2 \
% R8 N) }) ^9 B" R0 [, b( m* o我用代理dll的方式,让这个游戏窗口化了。
) g6 i) f7 }2 A8 w9 A. V随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。' p/ `7 _* k8 ~. o, X
在以下地方断下。
; C" Z1 J/ X0 Q+ P7 u/ I+ T1 Y* W% j8 [$ k, I
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01" e; D7 p& I/ X2 ?
  2. 地址004096F5
复制代码
, @9 T# ^4 }" J
$ H* O+ u* H  S- t  m2 G
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,- o1 H' q) H# L* u% U! l1 o: {8 S
真正的字幕显示函数需要追到上一层,后续再继续分析
7 N" q* _! @, t& g) d0 p7 V& B& X8 w% Y. u- s
  1. 5 ^3 ]" D% @6 B3 U& a* |( g
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    4 ^, N' \; ~7 R) G
  3. {$ }3 t0 g& u* V- F
  4.   _DWORD *v2; // eax
    2 E* F" F1 r  T! F9 H  [
  5. % d% M7 v6 V6 K& p2 D3 J
  6.   if ( !dword_5D9B50 )! q# D- \7 i+ D1 k, n9 p' k3 o
  7.   {9 c0 O7 N* A8 K3 v7 W# T7 w$ l5 [) t
  8.     if ( !a2 )( v: S) T* L& V& c9 g
  9.       goto LABEL_7;
    $ T4 j& I1 G: T6 I# h6 M
  10.     if ( strlen(a2) >= 0x80 )
    : G1 S. i3 l1 p$ p  `
  11.     {1 C' d0 m  R# d! R! p1 w
  12.       sub_51AEC6("ASSERT\n", a1);. _) e& P% T" r! p, g% x; p* Q
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    ! {1 ^/ }) H% ^7 `
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    , D. E$ p1 }% T8 O7 k$ t7 [
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");" E* Y. _+ @) t, d
  16.     }
    1 h, P; K8 f. K2 I
  17.   }
    . I+ N, M. T) Q6 h
  18.   if ( a2 )* W$ u7 @* x% [6 t! e- _
  19.   {
    " @' P; X$ O7 D; b' R5 N
  20.     strcpy((char *)&unk_5D3370, a2);
    " R4 G2 x+ s( b8 w
  21.     v2 = (_DWORD *)dword_5D3E6C;
    9 \) @$ L. m; {# s" l* O
  22.     byte_5D33F0 = 1;
    / S2 s/ B( z) u5 M: V
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;0 B, O& }( o+ r2 F0 {
  24.     v2[2] = 0;" T8 _, @* }% x, [0 ]6 r
  25.     v2[4] = 0x100000;6 A3 l+ S2 i/ O8 s- ?* k* p
  26.     v2[3] = 0;
    2 f- D8 ]& h: [; ^% X! o: G
  27.     v2[5] = 786432;
    " d( k! D! ~% a- K1 T
  28.     return;  c$ i! p5 v4 A& C9 b' n
  29.   }
    $ T9 j) ?2 b2 d: i
  30. LABEL_7:, H. n* }4 y( F
  31.   byte_5D33F0 = 0;. t$ A; V" }1 ^8 ]
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    - c$ P  E4 \& l  O; i7 V
  2. .text:004096ED                 align 10h
    ' a- }  J9 o4 c9 y
  3. .text:004096F0
    . h' B4 y  f! y7 j, t/ z; m
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    ) O9 z  _" i& M6 T1 K' h
  5. .text:004096F0                                         ; sub_409670+8A↓j
    ' ~( t* t) c# h# n, [
  6. .text:004096F0                 mov     cl, [eax]- w& U3 `7 {: ]% n4 B3 P
  7. .text:004096F2                 mov     [edx+eax], cl
    0 N. M1 J2 k6 {, E6 w+ @
  8. .text:004096F5                 add     eax, 1
    ; T: L' N9 @: O4 y% ?, ]
  9. .text:004096F8                 test    cl, cl
    8 V2 q0 Q' C* g: e( [; i, ~
  10. .text:004096FA                 jnz     short loc_4096F0* N4 q& ?3 O3 I
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    9 X- u/ V/ g& x; K$ F8 r# i+ s
  12. .text:00409701                 mov     byte_5D33F0, 1# }. K2 ^1 x# B/ a5 K
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    ( h; G: u/ F+ z2 V* S: {9 i% B  U' y
  14. .text:0040970C                 mov     dword ptr [eax+8], 0- v  v5 L& e: j: r! h5 Z
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    # w0 }. S/ V: ~5 R
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 08 D- A3 u  J& n9 X" N; D
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
    0 @4 C: ?/ r2 K% }4 P* o. K2 w: Y
  18. .text:00409728                 retn
    : b5 L) C( q" a$ p; r/ s
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
4 u* @1 I5 Z' Q) d. _& b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表