13 DWORD fdwPitchAndFamily FF_DONTCARE | DEFAULT_PITCH FF_DONTCARE | DEFAULT_PITCH# \1 P% s8 X5 Q/ C1 V. Z
14 LPCTSTR lpszFace 0x09148a58 "Arial" 0x09148a58 "Arial" : i; W R; q/ q1 G& V2 \6 K V
复制代码
- }* @% S. o) D6 s* H. {. J
# [' v( o0 I8 N/ t. f
用ida pro找到调用CreateFontA的源头函数如下。 ) I7 H$ g) Q0 }. T! m6 U4 }从函数的参数可以看出,这应该就是字幕显示函数了。, y6 B3 x* ]3 z, Z5 A3 q
关于后续修改,先修改CreateFontA函数的fdwCharSet,lpszFace这2个参数,也许就能出中文。 $ ]# @. L. f. D K& Q$ q还不行的话,就自己写一个显示函数。以下函数中lpMultiByteStr就是指向字幕的指针。 # U3 m+ k- V7 i# X3 n
& H. W7 N: T2 Q" T+ i: |
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) 9 q$ _6 e* P& K4 O2 c$ E Z
{2 f7 U: C$ V7 _' A, {
void *v11; // edi 6 y' d6 Y$ T, V6 C
int v12; // eax ; ~& q8 J% K$ `! |
int v14; // ecx. C2 C b4 O; _
int v15; // eax0 w' a) a9 |- H1 u0 Y' b
char *v16; // eax3 M$ E% E5 U+ ]
int v17; // eax : @$ I# G; P9 o4 {
HDC v18; // ebp- I: C b0 w- a2 c; v3 ^
int v19; // eax; _) b9 G6 k E+ b- s% |
int v20; // eax9 c% m' e/ e F
int v21; // esi & f' J1 w6 v+ w$ d6 j0 O8 ?
char *v22; // eax & u# m4 w, l9 |
int v23; // esi* h9 F* Z `7 I0 s' i& ^2 i% e( V
int v24; // ecx 8 S# e+ x+ a; L& S2 p6 M
HBRUSH v25; // eax, J: R& D5 F! E' z- |/ _4 {
signed int v26; // ebx 0 t! w; k" t6 E( R( b; i& m. M ?