冒险解谜游戏中文网 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 编辑
- Y5 Q8 M8 J: }7 J2 ^2 f2 I- i# T" x% g6 b' I/ T- Y
我用代理dll的方式,让这个游戏窗口化了。
+ ?" Q' d: Y! u" g, w' b7 t* m- C随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。/ U) s/ ~/ B, `6 S6 x7 g6 o
在以下地方断下。- V: ~! |& E- a9 b5 U1 Y
. _: B) V% p6 x! U2 e4 p+ J
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    * T( a6 s3 o8 `* M. ^8 W
  2. 地址004096F5
复制代码

# p+ O6 Z' q4 o1 U7 H
7 h5 p% C  V' Z5 b8 z5 P随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,2 T6 K; I. w5 v0 k
真正的字幕显示函数需要追到上一层,后续再继续分析5 W8 D3 U0 R0 q

- K- K- P/ |4 z4 u

  1. 7 X- y) x7 g' [7 f7 Y
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)) R# y0 L; g6 }' x
  3. {+ t7 [; z! T0 A
  4.   _DWORD *v2; // eax
    : w( s& a7 b! ^% n- I% U3 I! p

  5. 2 }9 w; h: B/ f+ q7 J  T
  6.   if ( !dword_5D9B50 )
    : z4 `" h' q$ \" d6 m" {
  7.   {, x$ E! B, p3 m2 R4 q# \
  8.     if ( !a2 )
      j2 K4 Z% j" K: R7 v# Y
  9.       goto LABEL_7;
      f* r$ D3 E: @. g
  10.     if ( strlen(a2) >= 0x80 )
    : L& ^3 _2 q2 s' \
  11.     {# c, a5 `6 r  \% X% c% {. c7 m
  12.       sub_51AEC6("ASSERT\n", a1);5 L  f/ m8 W- ^" T0 U2 e
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
      p4 ?. U% y4 X5 O& O7 V
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    # t- K# B- v+ b; B% }
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");9 l6 P! i1 K1 }! ^$ |' r
  16.     }
    & K" w1 R0 [8 K* ]; A
  17.   }. H% B) @+ V# |5 U
  18.   if ( a2 )
    . ~" X# Z3 Q; R
  19.   {
    : x; @) k# M5 a$ T0 i8 s
  20.     strcpy((char *)&unk_5D3370, a2);% c& ?% h. S+ G+ p( A
  21.     v2 = (_DWORD *)dword_5D3E6C;+ @* s# v$ `, R- }; m# {1 Q
  22.     byte_5D33F0 = 1;  A  D, R( g% _+ G$ X
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    , m( h2 K: F, Z$ F; N
  24.     v2[2] = 0;' n( O3 K1 A1 j: j" w
  25.     v2[4] = 0x100000;- F. H. H% _$ ^; c1 _9 R: l
  26.     v2[3] = 0;% K+ {9 Z0 y! T! q; y
  27.     v2[5] = 786432;
      {5 w5 ?& ]7 d
  28.     return;
    7 ~, A' V/ \4 W6 u
  29.   }
    : y% g& J1 e% Q* u; v7 {
  30. LABEL_7:
    9 r9 N* ^7 x% i* X+ K) F7 }
  31.   byte_5D33F0 = 0;
    ! \% Y$ K0 a" d9 w3 \% P+ S
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------5 t9 W$ Q# q( g* a. s
  2. .text:004096ED                 align 10h2 X) r) I6 e$ b; U. K8 A
  3. .text:004096F0
    8 k! p: |8 J: J3 L0 \+ H# ^
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    0 Q+ J7 `6 r/ C
  5. .text:004096F0                                         ; sub_409670+8A↓j
    % i5 I; {% K/ }4 d
  6. .text:004096F0                 mov     cl, [eax]
    % a  m1 h5 L8 Y
  7. .text:004096F2                 mov     [edx+eax], cl% ]+ I9 @) x$ t% D3 L0 G/ D
  8. .text:004096F5                 add     eax, 1
    $ b" d' }0 E: u' A! p
  9. .text:004096F8                 test    cl, cl
      w/ Q9 w  T- F) X+ J8 |
  10. .text:004096FA                 jnz     short loc_4096F01 m% X8 K6 j6 ^, f- ?7 b" m/ d
  11. .text:004096FC                 mov     eax, dword_5D3E6C. f$ S$ o! G- N% N  s' a! F
  12. .text:00409701                 mov     byte_5D33F0, 1/ e1 n  L( e: v5 |
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    % `& m  V$ s0 I9 p
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    5 T: Y8 W& P0 r
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    ! x; z$ I) O. L$ r/ A+ d
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 02 u: }4 h: J+ I2 s0 s5 a2 A  t3 I
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
    ! |* u* `$ L% R. m- R
  18. .text:00409728                 retn
    ) e& b# J$ G0 U
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

" `5 T  \" t" ?




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