$ w" m% |9 W- D) _
- f: D+ l! Z/ S; i. L
用ida pro找到调用CreateFontA的源头函数如下。, H$ e( l) {6 A6 e
从函数的参数可以看出,这应该就是字幕显示函数了。% ^2 F5 Q( B8 J
关于后续修改,先修改CreateFontA函数的fdwCharSet,lpszFace这2个参数,也许就能出中文。 - S) ]& p# m/ O& Z2 G" ^还不行的话,就自己写一个显示函数。以下函数中lpMultiByteStr就是指向字幕的指针。 ; a$ Q# m H- J, A
! W9 U2 v: P' [, |3 ~7 C
bool __thiscall sub_10058A00(void *this, int a2, int a3, int a4, int nNumber, int a6, DWORD a7, int a8, int xRight, int yBottom, LPCSTR lpMultiByteStr) H4 i$ B) e f. S9 x$ x" c
{ - n! f8 b; O0 L
void *v11; // edi2 R0 B3 o; ?4 U. ?9 ?5 Z
int v12; // eax: _1 s- u( _7 G9 W
int v14; // ecx - h5 O) x& `! v; j \9 o% a
int v15; // eax 1 e L9 n( W, T; `5 H+ x) N' F
char *v16; // eax - |' Z2 c# i. n+ p: z) X! Q
int v17; // eax3 B% T" h) q: X4 {5 ?
HDC v18; // ebp , l/ }: j# i: W4 }$ q+ F. M! b
int v19; // eax+ Y6 m- M% r! p5 i% }( }9 \! f
int v20; // eax8 Q! D5 { y" P9 `2 R9 j
int v21; // esi 4 n8 q% u9 S, C" J
char *v22; // eax( N: l6 f0 L. Q: L; ~
int v23; // esi , ]4 m+ ]! j$ w; k; c9 o, O+ m
int v24; // ecx3 v1 }3 h7 b$ B2 N8 j. C8 H( R
HBRUSH v25; // eax( x$ c2 |+ ]9 H3 [! |% e
signed int v26; // ebx ! \. `# ^! J; F4 s
WCHAR *v27; // eax7 t# H2 D1 {; U7 h3 H' {6 R2 A/ n v- A
int v28; // esi3 m% C5 I+ J4 q1 _
int v29; // ecx2 x3 M* c0 s# S3 y; k' e" U
int v30; // eax' j9 Q1 j: P5 Z0 e" z0 d6 V) p
int v31; // ST28_4 ' l: v( b& F4 ]8 Z) X% f/ V
bool v32; // sf + J e( u3 _1 _6 a+ v% \' w. k; k6 j
unsigned __int8 v33; // of ) w! |2 \1 ~, Y. f$ @& f$ S$ C