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

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

[复制链接]
查看: 229|回复: 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 编辑 8 `( E! F, Y" @: {

' [' ]9 u! g* w- i# \9 z$ q我用代理dll的方式,让这个游戏窗口化了。2 t3 L# H$ m3 r, Y3 t$ l$ `) W
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。
: R0 Y) M) m2 J' P- }在以下地方断下。6 n4 i8 z% l8 M; P$ G0 u/ A) K

3 H- m  b& D. O  W! L
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    0 }* \0 p" U: c/ e9 `# s" z
  2. 地址004096F5
复制代码
' v  V# s) @8 U' Q( o
1 {7 x3 b/ p1 J) ]# }
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
; _. |& r" C$ F) z1 C/ |; e. n真正的字幕显示函数需要追到上一层,后续再继续分析( q( |; n4 u1 q% \9 ~# F
) _" _! q) V+ ~/ _7 Z  f8 X

  1. 6 V/ p* m5 M7 C
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)! G. o6 h% T1 [, C! b: Z/ r
  3. {
    % ?+ }( v8 N! c* L1 ?
  4.   _DWORD *v2; // eax. p3 [. Z' A# I! ?
  5. 9 q, P0 F- p+ B! v, V) G- Z
  6.   if ( !dword_5D9B50 )
    3 }, A! O  h& j; x7 y- k
  7.   {
    $ o4 P: l$ C) Z3 |7 t  a& }
  8.     if ( !a2 )
    # t: l6 \% q) C2 Y4 v
  9.       goto LABEL_7;
    . e+ D  A; _0 F  j+ a
  10.     if ( strlen(a2) >= 0x80 ), r  q* v7 f$ D: o( X
  11.     {
    ) {% U2 ?, ?7 a
  12.       sub_51AEC6("ASSERT\n", a1);" I) ~- R3 _' P1 w$ A  r- Y
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    9 [6 ?. u5 O2 ?- S: [% n
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    $ M. L- \9 o, c, S5 `1 W
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    6 X8 C* Y1 m1 q# H% H9 c
  16.     }* n# q3 m* |5 c9 @" V! G/ o
  17.   }0 W- \9 f6 |% h. k5 v) L: R- R$ v
  18.   if ( a2 )
    , _$ }' K0 Y$ @/ b
  19.   {3 I! k# C3 i8 ^$ }+ t
  20.     strcpy((char *)&unk_5D3370, a2);
    8 H1 B! b% r: k4 P" E* }
  21.     v2 = (_DWORD *)dword_5D3E6C;
    / K- _- \( G( I; X9 L: z+ m
  22.     byte_5D33F0 = 1;
    ' S# t6 }5 K2 Y0 n; R
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    # H/ I; d  `" Y) q' X
  24.     v2[2] = 0;
    7 m- ?+ e& X5 O6 l; o5 U3 y) E
  25.     v2[4] = 0x100000;
    ! y- d4 ~+ d3 n
  26.     v2[3] = 0;
    2 i! b* F" }" Z# g) F8 R# j
  27.     v2[5] = 786432;
    ) p1 Q- Q! b4 \4 C7 E
  28.     return;
    , B- j5 c3 s( j+ }1 b7 ?
  29.   }
    / {' g. L7 [! A
  30. LABEL_7:
    # s" l: Z4 }3 s1 ^. [
  31.   byte_5D33F0 = 0;- ]6 _5 M( E# j  K3 b& L) f
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    $ z  }" x0 s# S6 F" G3 T% o
  2. .text:004096ED                 align 10h
    , y, @( m! w6 Y9 u( l+ u& t
  3. .text:004096F0
    " n# u2 L+ a/ b! A
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j
    8 K- q, d$ X' E7 O4 q% T
  5. .text:004096F0                                         ; sub_409670+8A↓j
    # G  l3 T( H( H
  6. .text:004096F0                 mov     cl, [eax]4 R; _2 d) @4 C% L, u' t
  7. .text:004096F2                 mov     [edx+eax], cl2 W9 @2 O8 u' }" t
  8. .text:004096F5                 add     eax, 1
    + M2 Q! W  n# w
  9. .text:004096F8                 test    cl, cl
    * c2 e/ N& H, |! S( O
  10. .text:004096FA                 jnz     short loc_4096F0
    % F5 \0 l. i( K9 ^. T
  11. .text:004096FC                 mov     eax, dword_5D3E6C# O" o0 S" A' [, z, I: E/ h
  12. .text:00409701                 mov     byte_5D33F0, 1$ y0 j) u  O% }* U4 Z& e
  13. .text:00409708                 mov     byte ptr [eax+4], 1% Z& F# b$ h/ E+ j7 j% h7 Z
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    3 @) f  e7 c! [" g
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h2 K! B, C  @  ?1 @& {
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0* @( m& Z2 A- w" z/ V" f. j! J
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
    - i, A* K: Y6 }+ Q+ t! G" t
  18. .text:00409728                 retn6 f2 m* Z, W5 i/ n0 N  t
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

' q; ]7 ^2 k& @7 Q! m5 i
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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