#include <Windows.h>
DWORD Hook (void * ToHook, void * OurFunct, int len) {
if (len < 5) {
return false;
}
DWORD curProtection;
VirtualProtect (ToHook, len, PAGE_EXECUTE_READWRITE, &curProtection);
memset (ToHook, 0x90, len);
DWORD relativeAddress = ((DWORD)OurFunct - (DWORD)ToHook) - 5;
DWORD temp;
VirtualProtect (ToHook, len, curProtection, &temp);
return true;
}
DWORD JumpBackaddy;
void _declspec(naked) OurFunct() {
_asm {
mov eax [eax+C]
mov eax [eax+C]
jmp [JumpBackaddy]
}
}
DWORD WINAPI Conseguiu (LPVOID param){
int HookLenght = 6;
DWORD HOOKADDRESS = 0x7770CD00;
JumpBackaddy = HOOKADDRESS + HookLenght;
Hook ((void*) HOOKADDRESS, OurFunct, HookLenght);
while(true){
Sleep(50);
}
FreeLibraryAndExitThread((HMODULE) param, 0);
return 0;
}