冒险解谜游戏中文网 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 编辑 4 F; i( q7 |% ~- y( S7 Z

& x. Y* y! F' t% ~我用代理dll的方式,让这个游戏窗口化了。; F* d9 _: e, w$ {, @
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。
; ]7 M) E4 n. E, n# {6 c0 r在以下地方断下。% r7 o$ O, ]- A0 S* E+ O
( w+ o7 B6 S' z4 {7 M5 N" H% {
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    / D" G6 S1 G7 z6 D$ k
  2. 地址004096F5
复制代码

3 F& H- J* G3 U2 \; r& U- L, y  w- I
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
4 S+ S/ k& e; f3 q' s" u真正的字幕显示函数需要追到上一层,后续再继续分析
  t5 d4 a0 z; \9 B6 T2 Q
5 t0 [! i3 I% [9 G' l

  1. 0 r# U+ a, D) Q1 P
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    . g5 h  L  g( \) ]! D% t
  3. {
    0 N& G" i/ H5 B8 a
  4.   _DWORD *v2; // eax+ i, i0 s# I/ N$ R5 V1 O1 i: S. B

  5. ) r+ P1 y$ h6 j2 h8 G
  6.   if ( !dword_5D9B50 )
    ; x9 Y- e: ?* @* e4 P
  7.   {9 Y- j' H5 f) G; l& I  e2 B; h, Z& t
  8.     if ( !a2 )
    . n( Q1 l' ~/ l0 g$ Z
  9.       goto LABEL_7;) y/ k' l$ q) u9 |8 |; k1 x6 b
  10.     if ( strlen(a2) >= 0x80 )
    % M7 c+ H7 I- e8 l: K$ R
  11.     {
    / D8 N% c/ N# L
  12.       sub_51AEC6("ASSERT\n", a1);3 {2 I2 k) E1 F6 P8 o5 \( o- `+ ^
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
      B8 V, U  o6 R
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    ( h* l# ~8 E/ t4 D# B
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    0 |# F5 V& }3 O% R  _! g
  16.     }
    ' T- `( `& u  O9 ~1 d) c/ b$ c
  17.   }* B* H/ M& g& X+ F& I
  18.   if ( a2 )' U* Z% f' x. a
  19.   {: R* z: Y4 Z  d  r' n2 Z0 f
  20.     strcpy((char *)&unk_5D3370, a2);
    ( J3 d6 e2 J& j% j) \
  21.     v2 = (_DWORD *)dword_5D3E6C;) |" U+ M5 K1 A$ @) }
  22.     byte_5D33F0 = 1;8 d% [$ d- E7 [3 p) M1 m% T
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    ' C8 e! U- B" W: q1 }
  24.     v2[2] = 0;
    2 J4 {* _! p! u6 y. Z
  25.     v2[4] = 0x100000;
    6 D& _" d# ^. q+ k* w3 j
  26.     v2[3] = 0;  I5 v& Q- L* R" |9 v# a
  27.     v2[5] = 786432;) y) b5 G4 t1 c6 C) K4 _
  28.     return;6 a) C$ o1 |4 X& C5 T
  29.   }/ }$ \6 C5 n+ h- I* }; f- L* @" }
  30. LABEL_7:
    4 ?' F5 v5 m% j6 V
  31.   byte_5D33F0 = 0;, X0 M' I1 W. B, h
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    ; G2 h8 P! X. w
  2. .text:004096ED                 align 10h
    0 Y5 R; W1 r- k5 N' S8 b; X
  3. .text:004096F0! {( X: {/ P6 e7 F3 Y  \9 n
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    / R+ ]$ l/ f. }0 h4 P) K
  5. .text:004096F0                                         ; sub_409670+8A↓j
    & I9 u. g& j5 Z; j. C8 G
  6. .text:004096F0                 mov     cl, [eax]
    2 X* o% y! R# H) T1 v
  7. .text:004096F2                 mov     [edx+eax], cl1 {6 u; K8 G0 s5 K- `
  8. .text:004096F5                 add     eax, 1; Q# f( V) j3 c- Y- K. X6 p9 l
  9. .text:004096F8                 test    cl, cl
    & r" p; [" n0 K
  10. .text:004096FA                 jnz     short loc_4096F0
    ; M& }' D- t1 H0 R0 {" I3 c' }
  11. .text:004096FC                 mov     eax, dword_5D3E6C, V! }, n; h1 K9 u3 h3 _* G' M
  12. .text:00409701                 mov     byte_5D33F0, 1- e' H2 a% H- l) N/ }
  13. .text:00409708                 mov     byte ptr [eax+4], 1
    : I' B' \$ I# W3 G1 ]
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    / k8 h) `1 Q# e! B6 r. p8 ^$ Z
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h3 J- @+ u( |- h$ ]% }. Z
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0* f6 {4 B; Z/ g; b/ D
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h9 N0 \! v: Q) c% l) n8 j
  18. .text:00409728                 retn
    9 E' O  t/ ^. f2 w/ T' j2 Q3 J6 g
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
$ s7 E6 M% l% ]5 b5 w# n& Z





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