LunaHook-mirror/LunaHook/engine32/AksysGames.cpp
恍兮惚兮 edc5efec99 format
2024-11-02 15:49:09 +08:00

74 lines
2.2 KiB
C++

#include "AksysGames.h"
bool AksysGames::attach_function()
{
const BYTE bytes[] = {
/*
v8 = *v2;
if ( *v2 == (char)0x80 )
{
++v2;
++v5;
goto LABEL_26;
}
v9 = 0;
v17 = v7;
v15 = v2;
v10 = v6;
if ( (unsigned __int8)v8 >= 0x81u && (unsigned __int8)v8 <= 0x9Fu
|| (unsigned __int8)v8 >= 0xE0u && (unsigned __int8)v8 <= 0xFCu )
{
*/
/*
.text:004BCB70 mov cl, [eax]
.text:004BCB72 cmp cl, 80h ; '€'
.text:004BCB75 jz loc_4BCC76
.text:004BCB7B xor esi, esi
.text:004BCB7D mov [ebp+var_20C], edi
.text:004BCB83 mov [ebp+var_214], eax
.text:004BCB89 mov ebx, edx
.text:004BCB8B test edi, edi
.text:004BCB8D jz short loc_4BCBE3
.text:004BCB8F cmp cl, 81h
.text:004BCB92 jb short loc_4BCB99
.text:004BCB94 cmp cl, 9Fh
.text:004BCB97 jbe short loc_4BCBA3
.text:004BCB99
.text:004BCB99 loc_4BCB99: ; CODE XREF: sub_4BCB20+72↑j
.text:004BCB99 cmp cl, 0E0h
.text:004BCB9C jb short loc_4BCBC3
.text:004BCB9E cmp cl, 0FCh
.text:004BCBA1 ja short loc_4BCBC3
*/
0x8a, 0x08,
0x80, 0xf9, 0x80,
0x0f, 0x84, XX4,
0x33, 0xf6,
0x89, XX, XX4,
0x89, XX, XX4,
0x8b, 0xda,
0x85, 0xff,
0x74, XX,
0x80, 0xf9, 0x81,
0x72, XX,
0x80, 0xf9, 0x9f,
0x76, XX,
0x80, 0xf9, 0xe0,
0x72, XX,
0x80, 0xf9, 0xfc,
0x77, XX};
ULONG range = min(processStopAddress - processStartAddress, MAX_REL_ADDR);
ULONG addr = MemDbg::findBytes(bytes, sizeof(bytes), processStartAddress, processStartAddress + range);
if (!addr)
return false;
addr = findfuncstart(addr, 0x100, true);
if (!addr)
return false;
HookParam hp;
hp.address = addr;
hp.offset = get_stack(1);
hp.type = USING_STRING;
return NewHook(hp, "AksysGames");
}