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

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

[复制链接]
查看: 231|回复: 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 编辑 ) q' T8 l( e9 G! A5 m: }! Z0 m

( p8 @& M5 D7 T' {我用代理dll的方式,让这个游戏窗口化了。
9 c) S+ k2 c* ]# v随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。5 _$ X+ k. y& e# N6 d. z; b
在以下地方断下。
7 b  n" a' n9 H0 h+ x4 p0 C! c$ g# G0 y& v6 E2 t/ v$ }
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,012 ~6 q5 z$ b' G
  2. 地址004096F5
复制代码

- S  E# y! ]2 S) P/ q1 R" }( a2 {! t9 i$ C# V$ E# d
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
* b, B5 |2 D0 I) a& ]! i真正的字幕显示函数需要追到上一层,后续再继续分析
( m1 ^5 H% }$ D- Z0 Y0 Q- U7 T' V9 B% _' m3 I$ ~# S$ X: U

  1. . R& B' O& i+ Q5 b
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    7 ?$ K( E1 o3 \* g
  3. {
    7 ?7 ^7 ^4 p4 I* T
  4.   _DWORD *v2; // eax/ y' b" T* v+ h/ O

  5. ' Z2 S) i' v( j3 b; X' ?
  6.   if ( !dword_5D9B50 )+ q( r6 u9 m) m2 Q
  7.   {
    % a) a' S  h* |3 A
  8.     if ( !a2 )
    " a( l( E% D+ {+ ^& x1 G) G
  9.       goto LABEL_7;( e! Q( ^% |8 V' U$ p2 x
  10.     if ( strlen(a2) >= 0x80 )0 U0 g" P1 e* K  P+ V
  11.     {% P+ ]' s- k" c: ]8 S. B
  12.       sub_51AEC6("ASSERT\n", a1);
    ! `; o4 _5 R/ w+ y: _
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    2 w0 l: _7 _3 d# q" e
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");0 X1 r. \) G" z5 @& U
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");, |2 n  f) f, i6 S) R
  16.     }/ @) s0 m9 ]2 J9 O" s
  17.   }! b4 Y! l- r- L
  18.   if ( a2 )
    % ]# |! G# J0 T! q9 e& a
  19.   {
    ( ^" I! ~  S$ G3 j" l& m
  20.     strcpy((char *)&unk_5D3370, a2);( A6 A9 W/ O9 h( m
  21.     v2 = (_DWORD *)dword_5D3E6C;
    5 V7 l$ J7 x1 C* _/ V; B
  22.     byte_5D33F0 = 1;6 n8 P6 g- d$ Y8 G0 b
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;4 l8 K: |8 Q% w- I  P
  24.     v2[2] = 0;
    4 ^% s1 P7 O( u2 z
  25.     v2[4] = 0x100000;7 p3 Z. C( H" L5 W9 u/ [
  26.     v2[3] = 0;$ W9 B  n3 R2 k, }8 n& Q5 F3 \. S
  27.     v2[5] = 786432;
    5 C/ C: r! C2 M
  28.     return;
    ( y" ~9 \; v! P
  29.   }5 S. b& D( Z) j% N: M6 g- {
  30. LABEL_7:
      P- M) w- t1 Z# ]/ f
  31.   byte_5D33F0 = 0;7 c+ Y  h2 V$ d( T
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------7 J9 m) L$ |* O: q
  2. .text:004096ED                 align 10h
    9 ~4 B$ S* Q# ]2 o- W) p+ {; H
  3. .text:004096F0, [5 _  M. W0 R" w4 r
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j" ?5 }, ^2 T  h3 y$ K
  5. .text:004096F0                                         ; sub_409670+8A↓j
    # ~" L% s  ~7 X# I5 J. a) x
  6. .text:004096F0                 mov     cl, [eax]( L1 e% X+ t4 z0 ?% O
  7. .text:004096F2                 mov     [edx+eax], cl" S! t. ]( Z! t1 \* d2 O$ k
  8. .text:004096F5                 add     eax, 1
    " h( o- a2 a* y; e+ S" }
  9. .text:004096F8                 test    cl, cl# s, H! @9 ?; C& |( J2 N2 i, R
  10. .text:004096FA                 jnz     short loc_4096F0
      M7 ?2 o! @0 R: K: f
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    ) V% |+ |& K1 k2 ?+ u: S0 r- T6 F( K
  12. .text:00409701                 mov     byte_5D33F0, 18 D- }( j( i4 ]- R  D4 n- }
  13. .text:00409708                 mov     byte ptr [eax+4], 1: x. h' m9 m/ G2 y' E4 D' S
  14. .text:0040970C                 mov     dword ptr [eax+8], 03 c; D& C7 k- y: ^' L  |
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    9 Z- W) x) ~* F% o: _3 b
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0& Z+ z/ ~9 r7 s; w* F* u
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
    ( e. D2 ^  C$ J1 }5 e" A" i
  18. .text:00409728                 retn1 Q% U* e6 c1 f; _$ H5 ?
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

! m5 _8 i7 w% {; W" G0 B& f
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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