冒险解谜游戏中文网 ChinaAVG
标题:
【Opengl游戏汉化 #2】 间谍活动:冬日行动(Undercover: Operation Wintersun)字...
[打印本页]
作者:
shane007
时间:
2023-8-26 18:24
标题:
【Opengl游戏汉化 #2】 间谍活动:冬日行动(Undercover: Operation Wintersun)字...
本帖最后由 shane007 于 2023-8-27 10:49 编辑
: j& A3 ]5 ]6 E
" Z. `3 `" ~8 v/ Z
这个游戏是opengl引擎的,对opengl的初始化主要是在vision71.dll里做的。经过grep文字检索之后,确定这个游戏没有调用 glGenLists和glCallList这2个函数来用于字幕显示。
! N) i' L4 ~# ^$ k. k1 m7 h
& ]# j4 T, r$ E' {- y @) L
dxwnd窗口化之后,用cheatengine 检索内存字符串(注意,有的字符串在内存有2份,对后1份下断点才有用),
1 U6 d4 c9 b T3 g9 O4 T G
随后下断点。在以下地方断下。
7 H) j9 }% \% x
1 G! Q' e$ }$ O9 h2 ~9 C
Operation Wintersonne.exe+CE883 - F3 A5 - repe movsd
$ [' f$ v* }: u
004CE883
复制代码
! U5 k; t. i, A9 S$ w* h# V
$ x: `( b+ g! M
用ida pro查看之后,发现是个底层方法。
0 L; O4 Q, h; p$ `3 H
真的显示函数应该是调用它的上层方法。
4 p- n: K9 }* V7 |; ?: e
void *__cdecl memcpy_0(void *a1, const void *a2, size_t a3)
3 h1 F! }. p. n% g( e
复制代码
2 m- N. E* O; d' K" m$ J
1 ~( F' Q+ U8 q! M, `
这个方法看着蛮像的,也许就是它,待日后修改代码测试
0 F+ ~* v! _) @( J- @. k
a1 [6 j1 q- L$ i* _# `7 h; F" D
6 b$ I. [- t _& o _
int __thiscall ATL::CSimpleStringT<char,0>::SetString(_DWORD *this, void *a2, size_t a3)
6 E' V# h* Q3 V6 n. Z; _! n
{
r/ C/ ^) B4 S) J) I
unsigned int v4; // edi
" D! D* Q3 D m( ?) S% l
char *v5; // esi
% d v* d4 K! ?* D: M, f# \1 q5 J
void *v6; // eax
8 w2 e; {- X; A' h) Y# D7 [/ Y6 V
% a1 f$ q, I6 u; E
if ( !a3 )
: w/ E8 J: C, m4 C
return ATL::CSimpleStringT<char,0>::Empty();
! V4 j2 g" T5 F+ T, j# b
if ( !a2 )
& k* L) `5 i y# q6 }$ W& b
unknown_libname_180(-2147024809);
( _. f2 {# J' k( y
v4 = *(_DWORD *)(*this - 12);
4 z/ V/ X* x h- u( q- ?0 c
v5 = (char *)a2 - *this;
9 j2 f8 X( g. L
v6 = (void *)ATL::CSimpleStringT<char,0>::PrepareWrite(a3);
/ O& X0 @4 c& O% @ v: k) ^
if ( (unsigned int)v5 > v4 )
5 ~: {$ k9 R; U
memcpy_0(v6, a2, a3);
4 x! q7 B* {: }& q* d; \& Q4 o
else
8 D+ U1 G$ l R5 i* x+ \$ b+ _% y
memcpy(v6, &v5[(_DWORD)v6], a3);
3 H5 H, L1 L! b/ w( \1 z
return ATL::CSimpleStringT<char,0>::SetLength(a3);
$ W4 n( s# g! t0 z+ d
}
% j: }, D9 q6 o. p' T
复制代码
5 C/ T6 X5 f5 W% [0 f! g
3 ?; n: _2 d# F! U, o4 {
- A& n7 o1 V$ l Z2 u3 Y
欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/)
Powered by Discuz! X3.2