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

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

[复制链接]
查看: 273|回复: 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 编辑 ' c" l2 b' l/ a5 e
; p- U. _" }' t
我用代理dll的方式,让这个游戏窗口化了。
/ T- e- u9 [8 r. M# o随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。$ ^+ U$ D1 U1 Q! |$ S! B
在以下地方断下。# }% s( O# [, y$ @9 M
, [1 l2 s; s9 e: A4 ]6 K5 ^. L5 c
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01- f3 ^8 V* I* `# v
  2. 地址004096F5
复制代码
# Q/ z8 }* N: Y7 }1 o7 [

# C# b2 z; w) [; J$ N随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,9 \* w% u9 A, A8 V7 p+ `( N7 R1 C/ H; H
真正的字幕显示函数需要追到上一层,后续再继续分析# R0 C! L3 }5 I  \3 Q
. G5 ?4 t6 |5 ^5 \4 `( t

  1. " Q$ S; @0 z+ F3 e( C
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    8 G+ Q# {/ P0 \; L1 V2 F/ |) j
  3. {
    1 z. C) P" A/ U$ m4 {% r" k% w" U
  4.   _DWORD *v2; // eax
    ; ^6 W; j) H2 a1 J
  5. . Q2 r* D4 s% K# z, _4 K  q& {
  6.   if ( !dword_5D9B50 )
    4 O1 F" l6 D% j3 B; ]+ W
  7.   {
    7 q" `( k; U* K3 ~7 i
  8.     if ( !a2 )( b2 Y& j4 q! O
  9.       goto LABEL_7;
    : L6 G+ p( ?# J/ P: N" O4 y
  10.     if ( strlen(a2) >= 0x80 )
    ) t$ g7 ~9 d6 u! N
  11.     {% x0 [  U8 r+ Z8 z; p
  12.       sub_51AEC6("ASSERT\n", a1);
    : b; e5 U! t- T; V* e
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");& D( Z6 G5 `2 K  @8 H" G2 |
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");
    , G0 u% f$ t* b
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");# n' j3 P6 k* E$ R" U
  16.     }' P, U5 y& H" F0 @  m: |0 b) C) x
  17.   }- \$ @% ]; l% V+ B
  18.   if ( a2 )( n& _$ c7 O( N* s- |! z
  19.   {) |, N/ u0 K- W9 h+ D' r6 v
  20.     strcpy((char *)&unk_5D3370, a2);; z- q- w' {) p" |$ |8 v
  21.     v2 = (_DWORD *)dword_5D3E6C;! W3 Q1 U/ k6 s
  22.     byte_5D33F0 = 1;5 N. ^+ n* {! C' e" f( f8 T$ `
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;
    - T7 G9 W; K( X, ~, j( ^% d
  24.     v2[2] = 0;; ^, E3 S  |4 ^& b
  25.     v2[4] = 0x100000;4 q) _. ^+ q7 d0 x$ u
  26.     v2[3] = 0;
    & h& i. b7 D% \9 M% U+ @8 P$ B+ @
  27.     v2[5] = 786432;3 G! s! T) v7 `! H# g$ r
  28.     return;( g' u. j& I  Y! x) u" `/ J3 {; t, a) }
  29.   }
    # q- U% D  d/ ]! u5 M; }
  30. LABEL_7:
    # p0 |- O9 k9 m6 i- ]' b8 W
  31.   byte_5D33F0 = 0;+ |: y5 V" A+ N* c, [5 H9 j+ W- N0 z; G
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    $ i7 j+ h+ [, [5 F3 O3 [
  2. .text:004096ED                 align 10h( A* g1 U) W2 Y) a
  3. .text:004096F07 @4 n6 e, v6 }
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j$ X. F9 N* j1 l; r5 e, c" H% t
  5. .text:004096F0                                         ; sub_409670+8A↓j4 I( o6 A+ w! F' n/ q$ `7 V
  6. .text:004096F0                 mov     cl, [eax]
    , E% J. R: l) D) d! m" p
  7. .text:004096F2                 mov     [edx+eax], cl
    6 `- A8 b' ?; y- u( U& A& S
  8. .text:004096F5                 add     eax, 1
    ) m3 w9 N1 b2 r9 b# M* x7 Y3 ~
  9. .text:004096F8                 test    cl, cl! g1 W* l8 _# g# k2 X/ }# s1 }
  10. .text:004096FA                 jnz     short loc_4096F09 p0 w/ h" _3 q& R% C' p9 Q+ X
  11. .text:004096FC                 mov     eax, dword_5D3E6C" R: Y, _8 _9 A- S6 Q
  12. .text:00409701                 mov     byte_5D33F0, 1
    - q+ [5 I; u  V4 b: d
  13. .text:00409708                 mov     byte ptr [eax+4], 1. d( f# b7 N  J8 u& j. s- u
  14. .text:0040970C                 mov     dword ptr [eax+8], 0
    2 A; X/ _- d7 P# f$ Z( w5 Q
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h
    $ k  P8 N& |( f
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0/ `1 R3 [+ C& ]. E0 D
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h0 o+ _$ z* g# ?( D# w
  18. .text:00409728                 retn
    + c4 s# J! L! S" ~; m
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

* j2 m" p0 X0 Z. q4 P% 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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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