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

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

  [复制链接]
查看: 495|回复: 1
打印 上一主题 下一主题

[建议] 【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 编辑
' O  Z% R6 T# p3 c" h7 i/ _3 J* K; L: G0 \
我用代理dll的方式,让这个游戏窗口化了。# x  t: S- @* f: B( j  h
随后用cheat engine(用其他工具老是出异常,无法正常调试)在内存中检索一句字幕,下内存方位断点。3 Q! ]' p  C% }( q1 `
在以下地方断下。3 T: t/ w  O5 r  o
7 T. \' n' k% ]9 j. Z) Q. G9 h
  1. CaptainMorgane.exe+96F5 - 83 C0 01              - add eax,01
    & O) c4 `, }! s; h+ X7 i# o3 X& t
  2. 地址004096F5
复制代码

- e' {. D& D9 X5 y% V2 M3 z  d, f. b
随后,在ida pro中查看伪代码,感觉这是一个字符串长度的check函数,
8 q4 f( g) q' B. e" Q6 f真正的字幕显示函数需要追到上一层,后续再继续分析
* k' }; Q$ M4 R( T1 N
' l5 y/ Y, I' W6 b9 z, `& u
  1. : E( X/ H& D  v: q+ }9 ~$ u/ i
  2. void __usercall sub_409670(char a1@<dil>, const char *a2@<esi>)
    8 ~+ a9 j' N( [3 A5 M# n6 v
  3. {
    & [4 Z. h& K! K# S; X" j- i
  4.   _DWORD *v2; // eax+ h5 z* F4 U+ k7 j3 K
  5. - z7 l8 q( Q7 V; V* _
  6.   if ( !dword_5D9B50 )
    * u# d4 Z0 K, K) d' [- F
  7.   {8 }. V. g) [( b. O
  8.     if ( !a2 )% |. [. e- D  j* l% L: k, y
  9.       goto LABEL_7;3 W( h; F9 _3 G7 w
  10.     if ( strlen(a2) >= 0x80 )7 M% x( F0 F  n) s9 }! y
  11.     {
    ' S; A6 G# v1 _& G" A& V7 b5 q4 f
  12.       sub_51AEC6("ASSERT\n", a1);& `+ T! c2 h3 a3 T1 ?
  13.       sub_51AEC6("file:      %s(%d)\n", (unsigned int)"..\\..\\Source\\Dialogs\\Common\\DialogInterface.cpp");+ y8 ~$ `8 s6 \$ }: m; z5 W
  14.       sub_51AEC6("function:  %s\n", (unsigned int)"DialogInterface::SetCaptionDisplayed");: M1 Z2 a& O. U3 M
  15.       sub_51AEC6("condition: %s\n", (unsigned int)"sCaption==NULL || strlen(sCaption)< NB_CHAR_MAX");
    9 h0 G4 K3 m& J3 W$ N1 b
  16.     }  o3 M# S+ H7 [; j4 W4 a& ~/ l% F7 f
  17.   }
    ; V" h. `: U/ Y$ O" K) t  I5 b
  18.   if ( a2 )
    ) s1 m$ i5 J# _# V# w& Z
  19.   {
    ! I1 \4 _7 _# M5 ]4 E* x
  20.     strcpy((char *)&unk_5D3370, a2);
    " C/ J4 U5 {; H+ d; m
  21.     v2 = (_DWORD *)dword_5D3E6C;# a3 a, c: l) X4 o) f* S% z
  22.     byte_5D33F0 = 1;! N6 b  ^5 u) R& B( N6 Y: ]7 w
  23.     *(_BYTE *)(dword_5D3E6C + 4) = 1;; [  S6 b# P2 |  T* M9 U
  24.     v2[2] = 0;4 ?* z: C( Q5 g" Q4 A& G
  25.     v2[4] = 0x100000;- X. t6 E, U7 y1 d
  26.     v2[3] = 0;+ T9 q4 s1 B" e' o% v$ C0 G
  27.     v2[5] = 786432;9 _- g7 h4 P9 S( x0 G# |* B; M
  28.     return;# y4 E/ W3 {2 L( P/ B
  29.   }; N4 l. L2 A* ^0 h9 Q
  30. LABEL_7:+ @8 }( f- W% Q1 A' q
  31.   byte_5D33F0 = 0;9 k% N( }( E7 y' [
  32. }
复制代码
  1. .text:004096EB ; ---------------------------------------------------------------------------
    2 {2 i& M" E7 K6 D/ `
  2. .text:004096ED                 align 10h
    $ v% y: Y0 Z: p1 ^) V  O; ]
  3. .text:004096F0
    . L0 T( x: Q, X/ r( @/ u
  4. .text:004096F0 loc_4096F0:                             ; CODE XREF: sub_409670+7B↑j0 Q$ @7 u* y2 ^4 \6 a/ Y
  5. .text:004096F0                                         ; sub_409670+8A↓j6 ^( y. h. H% m! I; _( W7 ]$ i
  6. .text:004096F0                 mov     cl, [eax]
    ! ], b7 r6 Q  h7 _
  7. .text:004096F2                 mov     [edx+eax], cl
    $ T, ~# `( J7 t! y8 H
  8. .text:004096F5                 add     eax, 1$ @" B' M* {7 S& f, L
  9. .text:004096F8                 test    cl, cl
    % b( h8 t3 k3 `# N2 b
  10. .text:004096FA                 jnz     short loc_4096F0
    4 H) Y4 C1 b; F) p8 b* z  e
  11. .text:004096FC                 mov     eax, dword_5D3E6C
    + v/ `7 w5 r, r; W; r6 v
  12. .text:00409701                 mov     byte_5D33F0, 1
    % j2 @1 R- H# [! C/ y
  13. .text:00409708                 mov     byte ptr [eax+4], 10 S) l8 Q+ n& p5 O
  14. .text:0040970C                 mov     dword ptr [eax+8], 04 |  v/ g& z! a
  15. .text:00409713                 mov     dword ptr [eax+10h], 100000h- W- l3 `4 P' Y
  16. .text:0040971A                 mov     dword ptr [eax+0Ch], 0& n' O' h, z* U5 I
  17. .text:00409721                 mov     dword ptr [eax+14h], 0C0000h$ ]* L2 E5 h$ F' x6 C
  18. .text:00409728                 retn9 }8 y& ]& E- z0 v" o( n) C: o7 F
  19. .text:00409729 ; ---------------------------------------------------------------------------
复制代码

* F  }6 V3 l: u" m3 L1 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好1 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2025-4-14 09:41 | 只看该作者
学习学习一下
回复 支持 反对

使用道具 举报

高级模式
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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