

Printf("HookVMTFuncion successfull for viewport\n") If(VMTH :: HookVMTFuncion ( ( PDWORD* ) viewport, ( DWORD ) hkProcessEventWP, ( UINT ) ProcessEventWP_Index )) Printf("SwapVMT successful for viewport\n") If ( VMTH :: SwapVMT ( ( PDWORD* ) viewport ) ) PDWORD oldcontroller = * ( PDWORD* ) controller įuncallsfp = fopen(FUNCTIONS_DUMP_PATH,"w") PDWORD oldviewport = * ( PDWORD* ) viewport Printf("controller found at %02x\n",controller) note: there are diffrent player controllers for each game typeĬontroller = UObject::FindObject("AOCTeamObjectivePC ") Printf("viewport found at %02x\n",viewport) Viewport = UObject::FindObject("AOCGameViewportClient ") Printf("GNames adress found in code: %02x\n",*objet) Objet = (DWORD *) (HACKTOOLS :: FindPattern ( ( DWORD ) udk_module.lpBaseOfDll, udk_module.SizeOfImage, ( PBYTE ) GNames_Pattern, ( char* ) GNames_Mask ) + GNames_Offset) Printf("Gobject adress found in code: %02x\n",*objet) Objet = (DWORD *) (HACKTOOLS :: FindPattern ( ( DWORD ) udk_module.lpBaseOfDll, udk_module.SizeOfImage, ( PBYTE ) GObjects_Pattern, ( char* ) GObjects_Mask ) + GObjects_Offset) Find the position of GObjects in memory Udk_module = HACKTOOLS :: GetModuleInfo ( TEXT ( "UDK.exe" ) ) If ( !strcmp( FunctionName, "Function " ) )ĪAOCPlayerController* playerController = (AAOCPlayerController*)pCallObject UGameViewportClient_eventPostRender_Parms* parameters= (UGameViewportClient_eventPostRender_Parms*)pParms UGameViewportClient* viewport = (UGameViewportClient*)pCallObject If (!strcmp(FunctionName,"Function ")) //If its a postrender call Strcpy(FunctionName, pFunction->GetFullName()) Void _declspec ( naked ) hkProcessEventWP ( ) lifted from Feckless' AA3EmptyServers example

PCanvas->Draw2DLine(pCanvas->ClipX/2 ,pCanvas->ClipY/2 -10, pCanvas->ClipX/2 ,pCanvas->ClipY/2 +10,Green) PCanvas->Draw2DLine(pCanvas->ClipX/2 -10,pCanvas->ClipY/2, pCanvas->ClipX/2 +10 ,pCanvas->ClipY/2,Green) TProcessEventWP pProcessEventWP = ( tProcessEventWP ) ProcessEventWP įColor MakeColor(int R, int G, int B, int A) Typedef void ( _stdcall* tProcessEventWP ) ( UFunction*, void*, void* ) #define FUNCTIONS_DUMP_PATH "functions.txt"
