FD1 MW3 aCI Bypass
No time to play games anymore; have fun while it lasts.
Also don't make any posts regarding compile errors .. if you can't compile it, learn to code.
This will basically allow you to use any cheats without being detected, atleast for the time being until aCI gets updated.
Also this patches out the weird unbindings people experience when they inject their hacks.
Oh, and inject it as soon as the game starts.
Also don't make any posts regarding compile errors .. if you can't compile it, learn to code.
This will basically allow you to use any cheats without being detected, atleast for the time being until aCI gets updated.
Also this patches out the weird unbindings people experience when they inject their hacks.
Oh, and inject it as soon as the game starts.
Code:
#include "StdAfx.h"
CDETOUR NP_SendRandomStringHook;
VOID NP_SendRandomString( CONST PCHAR Text )
{
NP_SendRandomStringHook.OriginalFunc( "troll 0" );
}
VOID SendStatus()
{
while( true )
{
NP_SendRandomString( "troll 0" );
Sleep( 5000 );
}
}
CDETOUR aCI_RunHook;
BOOL aCI_Run()
{
static HANDLE hThread = NULL;
if( !hThread )
{
hThread = CreateThread( NULL, NULL, ( PTHREAD_START_ROUTINE )SendStatus, NULL, NULL, NULL );
}
return TRUE;
}
BOOL PatchCI_CoreChecks()
{
HMODULE hIW5M = GetModuleHandleA("iw5m.dll");
if( !hIW5M )
{
return FALSE;
}
DWORD dwModuleSize = Util.GetModuleSize( hIW5M );
if( !dwModuleSize )
{
return FALSE;
}
DWORD dwCoreCIChecks = Util.FindCodeStylePattern( ( DWORD )hIW5M, dwModuleSize, ( PBYTE )"\xE8\x00\x00\x00\x00\x6A\x00\x6A\x00\x68", "x????xxxxx" );
if( !dwCoreCIChecks )
{
return FALSE;
}
if( Util.PatchBytes( dwCoreCIChecks, "\x90\x90\x90\x90\x90", 5 ) == FALSE )
{
return FALSE;
}
return TRUE;
}
BOOL PatchCI_ModuleRun()
{
HMODULE hLibnp = GetModuleHandleA( "libnp.dll" );
if( !hLibnp )
{
return FALSE;
}
DWORD dwModuleSize = Util.GetModuleSize( hLibnp );
if( !dwModuleSize )
{
return FALSE;
}
DWORD dwCIModuleRun = Util.FindCodeStylePattern( ( DWORD )hLibnp, dwModuleSize, (PBYTE)"\x55\x8B\xEC\x83\xEC\x44\x53\x56\x57\x0F\xB6\x05\x00\x00\x00\x00\x85\xC0\x74\x02", "xxxxxxxxxxxx????xxxx" );
if( !dwCIModuleRun )
{
return FALSE;
}
aCI_RunHook.Initiliaze( dwCIModuleRun, aCI_Run, DETOUR_TYPE_JMP, 6 );
aCI_RunHook.InstallDetour();
return TRUE;
}
BOOL PatchCI_HackDetection()
{
HMODULE hLibnp = GetModuleHandleA( "libnp.dll" );
if( !hLibnp )
{
return FALSE;
}
DWORD dwNP_SendRndStr = (DWORD)GetProcAddress( hLibnp, "NP_SendRandomString" );
if( !dwNP_SendRndStr )
{
return FALSE;
}
NP_SendRandomStringHook.Initiliaze( dwNP_SendRndStr, NP_SendRandomString, DETOUR_TYPE_JMP, 6 );
NP_SendRandomStringHook.InstallDetour();
return TRUE;
}
VOID HOOK_Anticheat()
{
if( !PatchCI_CoreChecks() || !PatchCI_ModuleRun() || !PatchCI_HackDetection() )
{
Print( "Warning: Unable to patch aCI" );
}
}
BOOL WINAPI DllMain( HMODULE Module, DWORD dwReason, LPVOID lpvReserved )
{
if( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread( NULL, NULL, ( PTHREAD_START_ROUTINE )HOOK_Anticheat, NULL, NULL, NULL );
}
return TRUE;
}


... Wonder waht you did :3

