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

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

[复制链接]
查看: 325|回复: 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 编辑 , K$ a# m) T3 o% T$ i4 M+ ^0 ^! c

$ ?9 D3 D) z1 @& _; Y3 h7 O我用代理dll的方式,让这个游戏窗口化了。' Q, y, e. o4 T
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。
! @5 X$ X, R5 O$ I& p在以下地方断下。
  \* Z6 [3 c5 ~% w$ R
" A% C- L4 S" `- W2 h) X2 ]! g
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01+ y7 u* B' B7 Z* K/ Z
  2. 地址004096F5
复制代码

# B; R# F5 E: Q$ c
/ c9 E3 s+ |. u/ t4 _2 J( h- y随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,+ l( R, O% n# X; E# H  O
真正的字幕显示函数需要追到上一层,后续再继续分析
. ?! E8 i  ~6 N$ k( B  k" R7 L
7 d5 t3 U7 F) U) C* {0 _

  1. . ?" Z# O/ v5 e1 |
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)* M  g# ^; T* t
  3. {
    1 D' o$ F% Q) T7 e
  4.   _DWORD *v2; // eax
    8 x5 V0 y5 D; C1 u# }7 M: `

  5. 5 D* K1 c6 z# v2 M8 _8 d
  6.   if ( !dword_5D9B50 )0 z; a5 r; T% N2 o# V) o  [  k* ]
  7.   {# m  g* u' h2 V
  8.     if ( !a2 ): ~( T" E7 N  O6 C0 o& z
  9.       goto LABEL_7;
    6 u" w' a# I$ |- m( ~. O
  10.     if ( strlen(a2) >= 0x80 )
    / _4 s7 L* t1 F) l5 N, e' R4 X% N
  11.     {' Q7 N6 t: m4 Y1 |" \/ M
  12.       sub_51AEC6("ASSERT\n", a1);
    ; y4 }' O% o. |$ ]
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");4 x7 S& o9 w% j# _" p" X
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");$ `* W, y( O$ o/ v5 |) y( `
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");6 r* `6 ^+ H1 `, e
  16.     }
    & }6 X$ b& m9 C% U7 s; C# [! Y
  17.   }
    $ N0 ?& B/ s7 o8 U# b% _6 w2 Q( C, _
  18.   if ( a2 )4 h: a; S( R% a* v& p* s
  19.   {+ }: T, U" v* ]- d9 ^, `
  20.     strcpy((char *)&unk_5D3370, a2);! k% {1 I; \* y3 U! @# ~8 }' x" I
  21.     v2 = (_DWORD *)dword_5D3E6C;
    ; O9 v& P+ |( R0 c/ e' {/ _6 b
  22.     byte_5D33F0 = 1;: S* \, |5 x/ W3 V& A) }$ a$ `" r2 h
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    ! l: ^; ^# N8 P+ H" z
  24.     v2[2] = 0;
    1 h  K: d- ~7 J: l' g* K* x: b" e9 B$ c
  25.     v2[4] = 0x100000;
    7 P+ }, I( S& A3 I4 p
  26.     v2[3] = 0;
    ( D2 X3 S0 a. w5 v
  27.     v2[5] = 786432;( T! j  y& L4 x/ C( N! S# \
  28.     return;
    # t6 g: T; k% I; h* u6 f
  29.   }: ~8 J5 C' ]% I9 \
  30. LABEL_7:
    " z1 K4 U( O* t3 [9 L: d1 j
  31.   byte_5D33F0 = 0;2 M, r5 C) R5 X/ B- n3 C
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    ! z4 u* I4 G. y1 ]" q' h0 K1 `
  2. .text:004096ED                 align 10h  q1 Y) v; t5 [8 b4 g$ J( G. b
  3. .text:004096F0
    " W* I6 Q3 g& T9 i
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j4 b' i3 u6 y' M( ~
  5. .text:004096F0                                         ; sub_409670+8A↓j7 a% o. D" G0 E+ F" m2 Y' j* `
  6. .text:004096F0                 mov     cl, [eax]
    ! X3 h, t7 Y7 X/ U# e! ^
  7. .text:004096F2                 mov     [edx+eax], cl
    ' K% Q6 R$ f: S3 G- K& o
  8. .text:004096F5                 add     eax, 1
    * }2 S1 a7 n0 P
  9. .text:004096F8                 test    cl, cl$ q2 F7 |1 G5 M
  10. .text:004096FA                 jnz     short loc_4096F06 _6 |# ^  w/ `; @1 s0 t
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    7 ], d+ P9 q( Q' e& l8 `8 O& J
  12. .text:00409701                 mov     byte_5D33F0, 11 @6 O/ f2 o/ F4 J# R' k; |
  13. .text:00409708                 mov     byte ptr [eax+4], 13 o/ m2 I: h* R" ?7 h8 F. g
  14. .text:0040970C                 mov     dword ptr [eax+8], 0( b- I2 |0 K! X* G2 f& h8 `3 W( C" c
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h0 Z  c) n0 S/ S
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0
    ( z/ I, H6 C: ^9 V
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h5 ~2 @+ W3 f! z1 t2 O: T( l
  18. .text:00409728                 retn
    8 f- R( x, Y$ ]: {6 i
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码
3 i$ p) \& ~* x5 L" x
分享到:  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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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