AimCorrection.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#ifndef __AIM__
#define __AIM__
#pragma once
#include "Files.h"
class cAim
{
public:
cAim( void )
{
SetWepData = true;
StoreWepData = false;
}
bool SetWepData, StoreWepData;
void AimCorrection( bool Correct );
private:
float OgAwepData[20][500];
};
extern cAim aim;
#endif
Class.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#ifndef __CLASS__
#define __CLASS__
// Update by We11ington
class cWeaponInfo
{
public:
char unknown1[12]; //0x0000
DWORD dwClientWeaponType; //0x000C
char unknown2[16]; //0x0010
DWORD dwAlt_InstDamage; //0x0020
DWORD dwInstDamage; //0x0024
char unknown3[108]; //0x0028
DWORD dwFireSnd; //0x0094
char unknown4[108]; //0x0098
float fFireDelay1; //0x0104
float ffiredelay1; //0x0108
DWORD dwMaxAmmo3; //0x010C
DWORD dwMaxAmmo2; //0x0110
char unknown5[300]; //0x0114
BYTE bTripleShotMode;; //0x0240
char unknown6[3]; //0x0241
DWORD dwTripleShotRoundNum; //0x0244
float fDamageRFacter; //0x0248
char unknown7[28]; //0x024C
DWORD dwInfiAmmo2; //0x0268
DWORD dwInfiniteAmmo; //0x026C
DWORD dwHideWhenEmpty; //0x0270
DWORD dwIsAmmo; //0x0274
char unknown8[4]; //0x0278
DWORD dwShotsPerClip; //0x027C
char unknown9[52]; //0x0280
float fZoomTime; //0x02B4
DWORD dwMinPerturb; //0x02B8
DWORD dwMaxPerturb; //0x02BC
float fDuckPerturb; //0x02C0
float fMoveDuckPerturb; //0x02C4
DWORD dwZoomedMinPerturb; //0x02C8
DWORD dwZoomedMaxPerturb; //0x02CC
DWORD dwRange; //0x02D0
char unknown10[12]; //0x02D4
DWORD dwVectorsPerRound; //0x02E0
char unknown11[40]; //0x02E4
float fPerturbIncSpeed; //0x030C
float fPerturbDecSpeed; //0x0310
char unknown12[4]; //0x0314
float fZoomedPerturbIncSpeed; //0x0318
float fZoomedPerturbDecSpeed; //0x031C
char unknown13[4]; //0x0320
float fBaseCamRecoilPitch; //0x0324
float fBaseCamRecoilAccelPitch; //0x0328
char unknown14[36]; //0x032C
float fTripleShotMaxCamRecoilPitch; //0x0350
float fTripleShotBaseCamRecoilPitch; //0x0354
char unknown15[8]; //0x0358
DWORD dwTripleShotMinPerturb; //0x0360
DWORD dwTripleShotMaxPerturb; //0x0364
float fTripleShotPerturbIncSpeed; //0x0368
float fTripleShotPerturbDecSpeed; //0x036C
char unknown16[156]; //0x0370
BYTE bDisableCrosshair; //0x040C
char unknown17[27]; //0x040D
float fCameraSwayXFreq; //0x0428
float fCameraSwayYFreq; //0x042C
char unknown18[12]; //0x0430
DWORD dwTargetCrosshairFlag; //0x043C
DWORD dwEffectRange; //0x0440
char unknown19[188]; //0x0444
};//Size=0x0500(1280)
class cWeaponMgr
{
public:
char unknown1[5568]; //0x0000
cWeaponInfo** Weapons; //0x15C0
__int32 WeaponCount; //0x15C4
};//Size=0x15C8(5576)
#endif
Detours.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#ifndef __DETOURS__
#define __DETOURS__
#pragma once
#include "Files.h"
class cDetours
{
public:
static void *DetourCreate( BYTE *src, const BYTE *dst );
};
extern class cDetours detours;
#endif
Files.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#ifndef __FILES__
#define __FILES__
#define VC_EXTRALEAN
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <stdio.h>
#include <iostream>
#pragma comment( lib, "d3dx9.lib" )
#pragma comment( lib, "d3d9.lib" )
#pragma warning (disable: 4244)
#include <d3d9.h>
#include <d3dx9.h>
#include "Detours.h"
#include "AimCorrection.h"
#include "Class.h"
#define ADDR_GAMESTATUS 0x37835E14
#define ADDR_WEAPONMGR 0x3786B0EC
#define ADDR_S_BULLETS 0x375106D6
#define ADDR_WEAPON_RANGE1 0x37516049
#define ADDR_WEAPON_RANGE2 0x375163C9
#define ADDR_RAPIDFIRE 0x37516B45
#define ADDR_NAMETAGS1 0x3725C839
#define ADDR_NAMETAGS2 0x3725C8BF
#define ADDR_CONSOLEUNWRAPPED 0x48B650
#define ADDR_RESPAWNCHECK 0x379CEB5F
#endif
Main.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#ifndef __MAIN__
#define __MAIN__
#pragma once
#include "Files.h"
class cMain
{
public:
static bool IsGameReady2Hook( void );
bool InGame(int variable);
DWORD *FindDevice( void );
void Hook( void );
};
extern cMain main;
#endif
Xor.h
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#pragma once
template <int XORSTART, int BUFLEN, int XREFKILLER>
class XorStr
{
private:
XorStr();
public:
char s[ BUFLEN ];
XorStr( const char * xs );
~XorStr()
{
for ( int i = 0; i < BUFLEN; i++ ) s[ i ]=0;
}
};
template <int XORSTART, int BUFLEN, int XREFKILLER>
XorStr<XORSTART,BUFLEN,XREFKILLER>::XorStr( const char *xs )
{
int xvalue = XORSTART;
int i = 0;
for ( ; i < ( BUFLEN - 1 ); i++ )
{
s[ i ] = xs[ i - XREFKILLER ] ^ xvalue;
xvalue += 1;
xvalue %= 256;
}
s[ BUFLEN - 1 ] = 0;
}
/*Modules*/
#define STRING_MODULE_D3D9 /*d3d9.dll*/XorStr<0xB3,9,0xBFF3D6AA>("\xD7\x87\xD1\x8F\x99\xDC\xD5\xD6"+0xBFF3D6AA).s
#define STRING_MODULE_EHSVC /*EhSvc.dll*/XorStr<0x90,10,0x6BE3B411>("\xD5\xF9\xC1\xE5\xF7\xBB\xF2\xFB\xF4"+0x6BE3B411).s
#define STRING_MODULE_CSHELL /*CShell.dll*/XorStr<0xB3,11,0xFAC438C9>("\xF0\xE7\xDD\xD3\xDB\xD4\x97\xDE\xD7\xD0"+0xFAC438C9).s
#define STRING_MODULE_CLIENTFX /*ClientFX.fxd*/XorStr<0x7A,13,0x9265FFF2>("\x39\x17\x15\x18\x10\x0B\xC6\xD9\xAC\xE5\xFC\xE1"+0x9265FFF2).s
/*Modules*/
/*Console Commands*/
#define STRING_CONSOLE_CHAMS /*SkelModelStencil 1*/XorStr<0x3B,19,0x91CC3190>("\x68\x57\x58\x52\x72\x2F\x25\x27\x2F\x17\x31\x23\x29\x2B\x20\x26\x6B\x7D"+0x91CC3190).s
#define STRING_CONSOLE_NOFOG /*FogEnable 0*/XorStr<0x25,12,0xC7F25807>("\x63\x49\x40\x6D\x47\x4B\x49\x40\x48\x0E\x1F"+0xC7F25807).s
#define STRING_CONSOLE_PICKUP /*ActivationDistance 99999*/XorStr<0x53,25,0xC13A91AF>("\x12\x37\x21\x3F\x21\x39\x2D\x33\x34\x32\x19\x37\x2C\x14\x00\x0C\x00\x01\x45\x5F\x5E\x51\x50\x53"+0xC13A91AF).s
/*Console Commands*/
AimCorrection.cpp
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#include "AimCorrection.h"
cAim aim;
void cAim::AimCorrection( bool Correct )
{
if( !StoreWepData )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)ADDR_WEAPONMGR;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
{
OgAwepData[0][i] = Wep->fDuckPerturb;
OgAwepData[1][i] = Wep->fMoveDuckPerturb;
OgAwepData[2][i] = Wep->fPerturbIncSpeed;
OgAwepData[3][i] = Wep->fPerturbDecSpeed;
OgAwepData[4][i] = Wep->fCameraSwayXFreq;
OgAwepData[5][i] = Wep->fCameraSwayYFreq;
OgAwepData[6][i] = Wep->fZoomedPerturbIncSpeed;
OgAwepData[7][i] = Wep->fZoomedPerturbDecSpeed;
OgAwepData[8][i] = Wep->fTripleShotMaxCamRecoilPitch;
OgAwepData[9][i] = Wep->fTripleShotBaseCamRecoilPitch;
OgAwepData[10][i] = Wep->fTripleShotPerturbIncSpeed;
OgAwepData[11][i] = Wep->fTripleShotPerturbDecSpeed;
OgAwepData[12][i] = Wep->fBaseCamRecoilPitch;
OgAwepData[13][i] = Wep->fBaseCamRecoilAccelPitch;
OgAwepData[14][i] = Wep->dwTripleShotMinPerturb;
OgAwepData[15][i] = Wep->dwTripleShotMaxPerturb;
OgAwepData[16][i] = Wep->dwMaxPerturb;
OgAwepData[17][i] = Wep->dwMinPerturb;
OgAwepData[18][i] = Wep->dwZoomedMaxPerturb;
OgAwepData[19][i] = Wep->dwZoomedMinPerturb;
}
}
}
StoreWepData = true;
}
if( Correct )
{
if( SetWepData )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)ADDR_WEAPONMGR;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
{
Wep->fDuckPerturb = 0.0f;
Wep->fMoveDuckPerturb = 0.0f;
Wep->fPerturbIncSpeed = 0.0f;
Wep->fPerturbDecSpeed = 0.0f;
Wep->fCameraSwayXFreq = 0.0f;
Wep->fCameraSwayYFreq = 0.0f;
Wep->fZoomedPerturbIncSpeed = 0.0f;
Wep->fZoomedPerturbDecSpeed = 0.0f;
Wep->fTripleShotMaxCamRecoilPitch = 0.0f;
Wep->fTripleShotBaseCamRecoilPitch = 0.0f;
Wep->fTripleShotPerturbIncSpeed = 0.0f;
Wep->fTripleShotPerturbDecSpeed = 0.0f;
Wep->fBaseCamRecoilPitch = 0.0f;
Wep->fBaseCamRecoilAccelPitch = 0.0f;
Wep->dwTripleShotMinPerturb = 0.0f;
Wep->dwTripleShotMaxPerturb = 0.0f;
Wep->dwMaxPerturb = 0.0f;
Wep->dwMinPerturb = 0.0f;
Wep->dwZoomedMaxPerturb = 0.0f;
Wep->dwZoomedMinPerturb = 0.0f;
}
}
}
SetWepData = false;
}
}
else
{
if( !SetWepData )
{
cWeaponMgr* WepMgr = *(cWeaponMgr**)ADDR_WEAPONMGR;
if( WepMgr )
{
for( int i = 0; i < WepMgr->WeaponCount; i++ )
{
cWeaponInfo* Wep = WepMgr->Weapons[i];
if( Wep )
{
Wep->fDuckPerturb = OgAwepData[0][i];
Wep->fMoveDuckPerturb = OgAwepData[1][i];
Wep->fPerturbIncSpeed = OgAwepData[2][i];
Wep->fPerturbDecSpeed = OgAwepData[3][i];
Wep->fCameraSwayXFreq = OgAwepData[4][i];
Wep->fCameraSwayYFreq = OgAwepData[5][i];
Wep->fZoomedPerturbIncSpeed = OgAwepData[6][i];
Wep->fZoomedPerturbDecSpeed = OgAwepData[7][i];
Wep->fTripleShotMaxCamRecoilPitch = OgAwepData[8][i];
Wep->fTripleShotBaseCamRecoilPitch = OgAwepData[9][i];
Wep->fTripleShotPerturbIncSpeed = OgAwepData[10][i];
Wep->fTripleShotPerturbDecSpeed = OgAwepData[11][i];
Wep->fBaseCamRecoilPitch = OgAwepData[12][i];
Wep->fBaseCamRecoilAccelPitch = OgAwepData[13][i];
Wep->dwTripleShotMinPerturb = OgAwepData[14][i];
Wep->dwTripleShotMaxPerturb = OgAwepData[15][i];
Wep->dwMaxPerturb = OgAwepData[16][i];
Wep->dwMinPerturb = OgAwepData[17][i];
Wep->dwZoomedMaxPerturb = OgAwepData[18][i];
Wep->dwZoomedMinPerturb = OgAwepData[19][i];
}
}
}
SetWepData = true;
}
}
}
Detours.cpp
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#include "Detours.h"
cDetours detours;
unsigned int Pointer[] = {0xE9};
void *cDetours::DetourCreate( BYTE *src, const BYTE *dst )
{
int len = 5;
BYTE *jmp = (BYTE*)malloc( len+5 );
DWORD dwBack;
VirtualProtect( src, len, PAGE_EXECUTE_READWRITE, &dwBack );
memcpy( jmp, src, len );
jmp += len;
jmp[0] = Pointer[0];
*(DWORD*)( jmp+1 ) = (DWORD)( src+len - jmp ) - 5;
src[0] = Pointer[0];
*(DWORD*)( src+1 ) = (DWORD)( dst - src ) - 5;
VirtualProtect( src, len, dwBack, &dwBack );
return( jmp-len );
}
Main.cpp
Code:
/**************Credits**************/
/*Black Diamond, luizimloko, mo3ad001, fatboy88, Azorbix, Gellin, Hans, ChaosMagican, Nightmare*/
#include "Main.h"
#include "Xor.h"
cMain main;
bool OnHack = true;
int Weapon, Bullets, Rapid;
DWORD dwCShellEntry;
typedef int( WINAPI *oPresent )( LPDIRECT3DDEVICE9 pDevice, const RECT *a, const RECT *b, HWND c, const RGNDATA *d );
oPresent pPresent;
bool bDataCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
if(*szMask=='x' && *pData!=*bMask )
return false;
return (*szMask) == NULL;
}
DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)
{
for(DWORD i=0; i < dwLen; i++)
if(bDataCompare( (BYTE*)( dwAddress+i ),bMask,szMask) )
return (DWORD)(dwAddress+i);
return 0;
}
bool cMain::InGame(int variable)
{
return((*( PBYTE )ADDR_GAMESTATUS == 1 ) && variable );
}
void __cdecl PushToConsole( const char* command )
{
_asm
{
PUSH command
MOV EAX, ADDR_CONSOLEUNWRAPPED
CALL EAX
ADD ESP, 0x4
}
}
void WriteMemory(void *Adresses, void *ByteOnOff, int QuantOfBytes)
{
DWORD AdressesValue, OtherValue;
VirtualProtect(Adresses, QuantOfBytes, PAGE_EXECUTE_READWRITE, &AdressesValue);
memcpy(Adresses, ByteOnOff, QuantOfBytes);
VirtualProtect(Adresses, QuantOfBytes, AdressesValue, &OtherValue);
}
void VerifyClick(int &val, int vkKey)
{
if(GetAsyncKeyState(vkKey)&1)
val = !val;
}
void NamesTag (bool Names)
{
if( Names ) {
WriteMemory((PVOID)ADDR_NAMETAGS1, "\x90\x90", 2);
WriteMemory((PVOID)ADDR_NAMETAGS2, "\x90\x90", 2);
} else {
WriteMemory((PVOID)ADDR_NAMETAGS1, "\x75\x05", 2);
WriteMemory((PVOID)ADDR_NAMETAGS2, "\x75\x05", 2);
}
}
void WeaponRange()
{
if( Weapon ) {
WriteMemory((PVOID)ADDR_WEAPON_RANGE1, "\xB8\x00\x00\x00\x10\x90", 6);
WriteMemory((PVOID)ADDR_WEAPON_RANGE2, "\xB8\x00\x00\x00\x10\x90", 6);
} else {
WriteMemory((PVOID)ADDR_WEAPON_RANGE1, "\x8B\x80\xD0\x02\x00\x00", 6);
WriteMemory((PVOID)ADDR_WEAPON_RANGE2, "\x8B\x80\xD0\x02\x00\x00", 6);
}
}
void SuperBullets()
{
if( Bullets ) {
WriteMemory((PVOID)ADDR_S_BULLETS, "\x90\x90\x90", 3);
} else {
WriteMemory((PVOID)ADDR_S_BULLETS, "\x0F\x94\xC0", 3);
}
}
void RapidFire()
{
if(GetAsyncKeyState(VK_LBUTTON) < 0 && Rapid == 1) {
WriteMemory((PVOID)ADDR_RAPIDFIRE, "\x90\x90", 2);
} else {
WriteMemory((PVOID)ADDR_RAPIDFIRE, "\x74\x3E", 2);
}
}
int WINAPI gellPresent( LPDIRECT3DDEVICE9 pDevice, const RECT *a, const RECT *b, HWND c, const RGNDATA *d )
{
_asm pushad;
/*AimCorrection*/
if( main.InGame( OnHack ))
{
aim.AimCorrection( OnHack );
/*AimCorrection*/
/*Memory Hacks*/
NamesTag( OnHack );
WeaponRange();
SuperBullets();
RapidFire();
VerifyClick(Weapon, VK_INSERT);
VerifyClick(Bullets, VK_END);
VerifyClick(Rapid, VK_DELETE);
/*Memory Hacks*/
/*Console Hacks*/
PushToConsole( STRING_CONSOLE_CHAMS );
PushToConsole( STRING_CONSOLE_NOFOG );
PushToConsole( STRING_CONSOLE_PICKUP );
/*Console Hacks*/
}
_asm popad;
return pPresent( pDevice, a, b, c, d );
_asm jmp [gellPresent];
}
void RespawnCheck()
{
DWORD MemoryCheck = FindPattern((DWORD)dwCShellEntry, 0x900000, (PBYTE)"\xFF\x34\x24\x5B\x81\xC4\x04\x00\x00\x00\xC3", "xxxxxxxxxxx") + 0x04;
memcpy((void *)ADDR_RESPAWNCHECK, (void *)"\x58\xB8\x01\x00\x00\x00",6);
}
DWORD *cMain::FindDevice( void )
{
DWORD hD3D9 = ( DWORD )LoadLibraryA( STRING_MODULE_D3D9 );
for( DWORD i = 0, n = 0; i < 0x128000; i++ )
{
if( *( BYTE*)( hD3D9 + i + 0x00 ) == 0xC7 ) n++;
if( *( BYTE*)( hD3D9 + i + 0x01 ) == 0x06 ) n++;
if( *( BYTE*)( hD3D9 + i + 0x06 ) == 0x89 ) n++;
if( *( BYTE*)( hD3D9 + i + 0x07 ) == 0x86 ) n++;
if( *( BYTE*)( hD3D9 + i + 0x0C ) == 0x89 ) n++;
if( *( BYTE*)( hD3D9 + i + 0x0D ) == 0x86 ) n++;
if( n == 6 )
return ( DWORD*)( hD3D9 + i + 2 );
n = 0;
}
return NULL;
}
bool cMain::IsGameReady2Hook(void)
{
if(GetModuleHandleA(STRING_MODULE_D3D9) != NULL
&& GetModuleHandleA(STRING_MODULE_CLIENTFX) != NULL
&& GetModuleHandleA(STRING_MODULE_CSHELL) != NULL)
return true;
return false;
}
void cMain::Hook( void )
{
DWORD * VtablePtr = main.FindDevice();
DWORD * devicePtr = ***( DWORD****)VtablePtr;
DWORD * VTable;
*( DWORD*)&VTable = *( DWORD*)VtablePtr;
pPresent = ( oPresent )detours.DetourCreate(( PBYTE)VTable[17], ( PBYTE) &gellPresent );
}
DWORD WINAPI dwMain( LPVOID lpArg )
{
while( !cMain::IsGameReady2Hook() )
Sleep( 25 );
main.Hook();
RespawnCheck();
return EXIT_SUCCESS;
}
BOOL APIENTRY DllMain( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if( dwReason == DLL_PROCESS_ATTACH )
{
CreateThread( NULL, NULL, dwMain, NULL, NULL, NULL );
}
return TRUE;
}
Virus scan 1
Virus Scan 2
Credits:
Nightmare
Black Diamond
luizimloko
mo3ad001
fatboy88
azor bix
gellin
Hans
We11ington
ChaosMagican
@
.REZ
@
Apeiron
@
BACKD00R
@
DJ Allen
@
Flengo
Approve?