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

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

[复制链接]
查看: 274|回复: 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 编辑 - J  ^5 [7 U: u1 _% @# V
2 ^% ~, W2 I* R; v8 A
我用代理dll的方式,让这个游戏窗口化了。
+ ^7 T9 u$ ?' a/ }  b( H' E1 h2 `随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。' P: x  ]  d/ M% Z% A& @
在以下地方断下。
4 n! v3 P7 V. d3 Z* b1 Y$ X: b. ^" n/ u
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    ( B! _" K% v- _( d# F
  2. 地址004096F5
复制代码

! ]" n2 O7 s2 V3 B; m+ Q" d* m/ }: h; p8 c2 H6 Q  D
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,' a- ^* x( D3 K( c- H& t# k: B! G
真正的字幕显示函数需要追到上一层,后续再继续分析
7 {# a! q* F+ G3 u7 Q
1 z) J& {) x8 Y" _1 v

  1. ' O# Y$ W  P+ g
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)0 q3 N' J* T4 {# b) E1 X
  3. {$ T8 t/ E; }! S3 L5 n# i# d
  4.   _DWORD *v2; // eax
    4 r# {! `& }% r0 p8 R
  5. " e" c( X, \# c0 G- b' I1 u
  6.   if ( !dword_5D9B50 )) i: P" L% V7 f
  7.   {
    * g3 w1 e: H! O# K+ {
  8.     if ( !a2 )6 ~& F+ _$ s6 D/ K5 F6 c
  9.       goto LABEL_7;
    ( ]9 v2 n6 b" s* M5 \8 v; t
  10.     if ( strlen(a2) >= 0x80 )
    1 s1 L8 n8 r* o9 s; I; L
  11.     {0 x8 `* F0 l5 B8 k  W
  12.       sub_51AEC6("ASSERT\n", a1);
    ( l# M% Z+ j$ C
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");
    ) `8 Z# u' P( D1 N
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");; n; b# P8 g7 P5 X# I9 j1 o3 h
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    / C3 m* E7 Q6 N5 n3 b' Z7 t
  16.     }
    6 v1 z/ E& ?; o& T6 M/ j
  17.   }
    4 f& ^$ B5 }5 q9 f9 w. R- w7 M
  18.   if ( a2 )* @: _, w" L+ k  U  z6 s8 _
  19.   {
    ; M5 m% f$ c& k
  20.     strcpy((char *)&unk_5D3370, a2);
      c. `* U; q' W) x0 Z. S: ^/ f; c
  21.     v2 = (_DWORD *)dword_5D3E6C;/ _& S) Q" X- a5 v1 l
  22.     byte_5D33F0 = 1;
    , y5 D) `% W" B' H4 z1 Q
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    ; m% @+ @! E& T! {1 R8 }
  24.     v2[2] = 0;
    1 B- Y- |' s( A# j) m+ {- \- T
  25.     v2[4] = 0x100000;
    2 u+ j, r+ x$ _/ ?& x
  26.     v2[3] = 0;- c& r/ u4 Z- H3 N0 G/ u7 t
  27.     v2[5] = 786432;3 f$ G/ B( a" G; n- X
  28.     return;
    # |& H5 {- _2 ~  B+ _8 [
  29.   }: N) Z* Y, `9 T7 [% B% p: F
  30. LABEL_7:
    2 `9 w0 D/ T4 M
  31.   byte_5D33F0 = 0;
    6 R3 r: n" N) g! `, A2 s
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    - r7 Q  O+ m3 k
  2. .text:004096ED                 align 10h5 \! @& q; X. ^2 K0 _
  3. .text:004096F0  q0 w- q/ i9 v
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j& M$ K: k& [9 K2 V# V; q3 _. M
  5. .text:004096F0                                         ; sub_409670+8A↓j
    # y  Z8 G2 G% ]5 J& |7 z. g
  6. .text:004096F0                 mov     cl, [eax]/ m: f; O( M/ F. s$ N* k
  7. .text:004096F2                 mov     [edx+eax], cl
    , A1 [& x" }  ~
  8. .text:004096F5                 add     eax, 1
    : C$ j  y1 [8 _/ v9 h
  9. .text:004096F8                 test    cl, cl' c7 a5 t9 q$ t. k6 u0 e# v" Q
  10. .text:004096FA                 jnz     short loc_4096F0
      c2 y' V% m& V6 n
  11. .text:004096FC                 mov     eax, dword_5D3E6C4 ]$ @4 Q6 C+ e, q
  12. .text:00409701                 mov     byte_5D33F0, 1% w# ~6 B8 @- S; b+ r. K
  13. .text:00409708                 mov     byte ptr [eax+4], 1! N/ `) }9 v" E' k/ r6 H
  14. .text:0040970C                 mov     dword ptr [eax+8], 0" J6 [0 ^/ _4 g- z/ h: \3 B/ r
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    6 o0 z* i- V3 j
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0
    . \4 H# T5 }, H4 L  M4 Y+ H
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h
      Q0 E% v: Y, e
  18. .text:00409728                 retn
    ( w. e* k5 g" e
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
( z( m; S5 U4 f  @, G* M
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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