DWORD Start3D = 0x005396AF;
DWORD retStart3D = (Start3D + 0xE);
__declspec(naked)HRESULT WINAPI Start3DMidfunction(VOID)
{
static LPDIRECT3DDEVICE9 pDevice;
__asm
{
MOV EAX,DWORD PTR DS:[0x774640]
INC EAX
MOV DWORD PTR DS:[0x774640], EAX
CMP EAX, 1
PUSHAD
}
if(!pDevice)
pDevice = **(LPDIRECT3DDEVICE9 **)0x00878528;
else
{
RenderMenu(pDevice);
}
__asm
{
POPAD
JMP DWORD PTR DS:[retStart3D];
}
}
DWORD WINAPI dwEngineHooking(PVOID)
{
while(1)
{
if(memcmp((PVOID)Start3D, (PVOID)(PBYTE)"\xA1", 1) == 0)
{
Sleep(100);
DetourCreate((PBYTE)Start3D, (PBYTE)Start3DMidfunction, 14);
}
Sleep(50);
}
return EXIT_SUCCESS;
}
