冒险解谜游戏中文网 ChinaAVG

标题: 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt... [打印本页]

作者: shane007    时间: 2023-8-26 16:09
标题: 【Directx9游戏汉化 #7】莫嘉娜船长与金海龟(Captain Morgane and the Golden Turt...
本帖最后由 shane007 于 2023-8-26 16:14 编辑 + d/ ^! j7 w# ~, z

) s9 G& r/ Y9 ?2 c我用代理dll的方式,让这个游戏窗口化了。
+ r; y8 x3 a/ i7 |# @随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。% z& c- L! ]7 K4 U/ R
在以下地方断下。
8 n3 U& [" i! x" z
5 V$ a( E6 P* H- r, `
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01, e9 I4 D1 z4 F+ `7 N9 |" j
  2. 地址004096F5
复制代码

& C1 V! w4 w1 z9 A/ d5 B: k/ T: `+ a% e, m# V+ ^
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,/ b4 D" Q* v5 X  x+ U7 Y
真正的字幕显示函数需要追到上一层,后续再继续分析
* y7 C" \" }0 s2 ^" c* w, F, N. ~& l  |* V- U. r

  1. * h+ l9 @# M4 C0 e
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    . T  p  l: E3 F# n! o5 R
  3. {! P# G, x1 h' k: D0 d+ L$ R
  4.   _DWORD *v2; // eax( t" Z# g& Q% `/ |5 j: L
  5. 2 E7 D- J5 u% l' e. [# \2 o
  6.   if ( !dword_5D9B50 )* b: f$ i; V4 w9 Y  i9 L- C$ M+ i
  7.   {6 {8 Q2 l- d  c! \0 Z1 T
  8.     if ( !a2 )
      D1 {$ i  y$ H* T
  9.       goto LABEL_7;
    ) R+ Y& `, H1 v; O4 w0 r9 W
  10.     if ( strlen(a2) >= 0x80 )& j. Q1 R$ q8 ?; n4 _$ U
  11.     {" e: t0 {6 V: z1 Z: o( s
  12.       sub_51AEC6("ASSERT\n", a1);) Z/ }# V& f5 [7 x0 x
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    5 P1 H" k% D8 _4 S
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    ; f) e) ]# R% `! G3 g; ^! D/ ^
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    % v' v. ]8 H% ]) h! Q
  16.     }
    8 p( o: Q1 S' _7 m  {6 G
  17.   }
    ' o+ J9 Z' p, s7 o: S. O
  18.   if ( a2 ), Q- q0 _6 U# I: N6 m( A3 k
  19.   {' V' R4 W/ c" k) L# w, A( j
  20.     strcpy((char *)&unk_5D3370, a2);
    . }- H" l- C7 o- c4 @; e% d5 a6 D
  21.     v2 = (_DWORD *)dword_5D3E6C;5 r4 H3 v. x9 x; B
  22.     byte_5D33F0 = 1;
    " R& r) c, a) y, `7 ?1 X
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    5 j+ e0 U& i/ U/ Y1 C
  24.     v2[2] = 0;
    2 A, v& m- T/ [- W3 }
  25.     v2[4] = 0x100000;
    ! q* I! M' c. z5 W" I- k3 O! j" Y
  26.     v2[3] = 0;
    3 ?' g6 E4 h: c  Q% i2 c6 a
  27.     v2[5] = 786432;, R/ A3 V& A# O  s' {5 D! U8 n0 d# ]
  28.     return;
    1 E: O2 ~% k+ r& n( A
  29.   }
    0 u! |, ^; Z1 ^0 R
  30. LABEL_7:
    & v) V% F: R2 h1 I8 u
  31.   byte_5D33F0 = 0;
    - F2 B1 `( k- a& _7 U
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    6 u7 J; R  z- i* I
  2. .text:004096ED                 align 10h# s' O, p1 J0 E. Q6 U% \1 v
  3. .text:004096F0  B. u7 a; U- \4 p  ^$ N
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    0 u& ]# ^$ Z: J
  5. .text:004096F0                                         ; sub_409670+8A↓j
    ; y4 M. T" M) R$ d
  6. .text:004096F0                 mov     cl, [eax]+ a, {  {: y5 J: ^7 a
  7. .text:004096F2                 mov     [edx+eax], cl, T$ ^) j% r! C) q8 S- a
  8. .text:004096F5                 add     eax, 1( r4 z! G& M' i* B, x
  9. .text:004096F8                 test    cl, cl4 n5 }, g! X8 k( U& `: K" v
  10. .text:004096FA                 jnz     short loc_4096F0
    # c' I9 L" q* U# h, k$ \6 x
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    5 V* @3 ~% C  z0 B  w
  12. .text:00409701                 mov     byte_5D33F0, 1
    ; k! Y9 z" [: I$ d5 ?
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    ; E2 X  i/ K( z6 x# Y& F1 q
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    7 e/ B. R0 D+ g+ X" A) k  Q8 t
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    ! K/ v9 w& @9 p5 \. J3 l
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0
    * C" z- O6 a9 f
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
    6 v4 J. W7 B4 p* Y6 I
  18. .text:00409728                 retn
    ( c/ [. \+ c, q+ P2 ]
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
6 p7 I$ G, D2 W( K1 V$ h, V





欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2