#include "Base.h"
#include "Menu.h"
float ScreenCenterX = 0.0f;//Horizontal Position
float ScreenCenterY = 0.0f;//Vertical Position
#define addy1 0x3745FCE0
#define addy2 0x37232C39
#define addy3 0x3745FCF4
#define addy4 0x3745FCF7
#define addy5 0x3745FD00
#define LTCLIEST 0x377C8538
#define RELOAD 0x374AB964
#define playerptr 0x66F34
#define random 0x37808EA0
#define posy 0xCC
#define Spacekey VK_SPACE
DWORD player, position, target;
int chams = false;
int fog = false;
int hacks = 0;
int M00000001 = 0;
int M00000002 = 0;
int MCross = 0;
int M00000004 = 0;
int M00000005 = 0;
int M00000006 = 0;
int M00000007 = 0;
int M00000008 = 0;
int M00000009 = 0;
int M000000010 = 0;
int M000000011 = 0;
int M000000012 = 0;
int M000000013 = 0;
int Creds = 0;
int Cred1 = 0;
int Cred2 = 0;
int M000000014 = 0;
int M000000015 = 0;
bool RECOIL( void * pDest, char * szPatch, size_t sSize ){
DWORD dwOrgProtect = NULL;
if( !VirtualProtect ( pDest, sSize, PAGE_EXECUTE_READWRITE, &dwOrgProtect ))
return FALSE;
memcpy( pDest, szPatch, sSize );
VirtualProtect( pDest, sSize, dwOrgProtect, NULL );
return TRUE;
RECOIL((LPVOID)addy1, "\xD8\x66\x54", 3);
RECOIL((LPVOID)addy2, "\xD8\x46\x54", 3);
RECOIL((LPVOID)addy3, "\xD9\x46\x48", 3);
RECOIL((LPVOID)addy4, "\xD9\x5E\x54", 3);
RECOIL((LPVOID)addy5, "\xD9\x5E\x48", 3);
}
bool rELoad( void * pDest, char * szPatch, size_t sSize ){
DWORD dwOrgProtect = NULL;
if( !VirtualProtect ( pDest, sSize, PAGE_EXECUTE_READWRITE, &dwOrgProtect ))
return FALSE;
memcpy( pDest, szPatch, sSize );
VirtualProtect( pDest, sSize, dwOrgProtect, NULL );
return TRUE;
rELoad((LPVOID)RELOAD, "\x0F\x84\xB1\x01\x00\x00", 3);
}
//Menu Position
int menux = 50;//guauche,droite
int menuy = 200;//bas,haut
//position du menu
bool IsGameReadyForHook()
{
if( GetModuleHandleA( "d3d9.dll" ) != NULL
&& GetModuleHandleA( "ClientFX.fxd" ) != NULL
&& GetModuleHandleA( "CShell.dll" ) != NULL )
return true;
return false;
}
cBase Base;
void __cdecl cBase::PTC(const char* szCommand )
{
DWORD *facedecul = ( DWORD* )( LTCLIEST );
void* CONoff = ( void* )*( DWORD* )( *facedecul + 0x208 );
__asm
{
push szCommand;
call CONoff;
add esp, 4;
}
}
void cMenu::RenderMenu(void)
{
AddItem(" [---hacks---]", fajslkjd, &hacks, 2, MENUFOLDER);
if(hacks){
AddItem("Chams" , sldjhkjhkhqep , &M00000001 , 2, MENUITEM);//
AddItem("NoFog" , sldjhkjhkhqep , &M00000002 , 2 , MENUITEM);//
AddItem("Crosshair" , sldjhkjhkhqep , &MCross , 2 , MENUITEM);//
AddItem("NoSpread" , sldjhkjhkhqep , &M00000005 , 2 , MENUITEM);//
AddItem("NoRecoil" , sldjhkjhkhqep , &M00000004 , 2 , MENUITEM);//
AddItem("NoReload" , sldjhkjhkhqep , &M00000006 , 2 , MENUITEM);//
AddItem("PlayerWire" , sldjhkjhkhqep , &M00000007 , 2 , MENUITEM);//
AddItem("WorldWire" , sldjhkjhkhqep , &M00000008 , 2 , MENUITEM);//
AddItem("SpeedHack" , sldjhkjhkhqep , &M00000009 , 2 , MENUITEM);
AddItem("Fly Hack" , sldjhkjhkhqep , &M000000010 , 2 , MENUITEM);
AddItem("GhostMode" , sldjhkjhkhqep , &M000000011 , 2 , MENUITEM);
AddItem("MoveMenu" , sldjhkjhkhqep , &M000000014 , 2 , MENUITEM);
AddItem("anti-screen" , sldjhkjhkhqep , &M000000012 , 2 , MENUITEM);
AddItem("OPK" , sldjhkjhkhqep , &M000000015 , 2 , MENUITEM);
AddItem("telekill" , sldjhkjhkhqep , &M000000013 , 2 , MENUITEM);
}
AddItem(" [---Credits---]", fajslkjd, &Creds, 2, MENUFOLDER);
if(Creds){
AddItem("MPGHCHEAT" , sldjhkjhkhqep , &Cred1 , 2 , MENUITEM);
AddItem("By Azerty54" , sldjhkjhkhqep , &Cred2 , 2 , MENUITEM);
}
}
bool Memoria( void * pDest, char * szPatch, size_t sSize )
{
DWORD dwOrgProtect = NULL;
if ( !VirtualProtect ( pDest, sSize, PAGE_EXECUTE_READWRITE, &dwOrgProtect ))
return FALSE;
memcpy( pDest, szPatch, sSize );
VirtualProtect( pDest, sSize, dwOrgProtect, NULL );
return TRUE;
}
void cBase::RenderFrame(LPDIRECT3DDEVICE9 pDevice)
{
if(Directx.pFont == NULL)
D3DXCreateFontA(pDevice, 12, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black", &Directx.pFont );
if (GetAsyncKeyState(VK_DELETE)&1){
D3DXCreateFontA(pDevice, 12, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial Black", &Directx.pFont );
Menu.MenuShow(menux,menuy,Directx.pFont);
Menu.MenuNav();
}
if (Mmax==0) Menu.RenderMenu();
PTC(" ShowFps 1 ");
player = NULL;
player = (DWORD)GetModuleHandleA("ClientFX.fxd");
player += playerptr;
memcpy(&position,(void *)(player),4);
position += posy;
memcpy(&target,(void *)(random),4);
target += posy;
//chams/////////////////////////////////
if (M00000001 >0){
PTC("SkelModelStencil 1");
}else{
PTC("SkelModelStencil 0");
}
//NoFog////////////////////////////////
if (M00000002 >0){
PTC("FogEnable 0 ");
}else{
PTC("FogEnable 1 ");
}
//CrossHair
if (MCross >0){
D3DVIEWPORT9 viewP;
pDevice->GetViewport( &viewP );
DWORD ScreenCenterX = viewP.Width / 2;
DWORD ScreenCenterY = viewP.Height / 2;
D3DRECT rec1 = {ScreenCenterX-25, ScreenCenterY, ScreenCenterX+ 25, ScreenCenterY+2};
D3DRECT rec2 = {ScreenCenterX, ScreenCenterY-25, ScreenCenterX+ 2,ScreenCenterY+25};
pDevice->Clear( 1, &rec1, D3DCLEAR_TARGET, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), 0, 0 );
pDevice->Clear( 1, &rec2, D3DCLEAR_TARGET, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), 0, 0 );
}
//no recoil
if (M00000004 >0){
RECOIL((LPVOID)addy1, "\x90\x90\x90", 3);
RECOIL((LPVOID)addy2, "\x90\x90\x90", 3);
RECOIL((LPVOID)addy3, "\x90\x90\x90", 3);
RECOIL((LPVOID)addy4, "\x90\x90\x90", 3);
RECOIL((LPVOID)addy5, "\x90\x90\x90", 3);
}else{
RECOIL((LPVOID)addy1, "\xD8\x66\x54", 3);
RECOIL((LPVOID)addy2, "\xD8\x46\x54", 3);
RECOIL((LPVOID)addy3, "\xD9\x46\x48", 3);
RECOIL((LPVOID)addy4, "\xD9\x5E\x54", 3);
RECOIL((LPVOID)addy5, "\xD9\x5E\x48", 3);
}
//no spread
if (M00000005 >0){
PTC("PerturbRotationEffect 0.000000");
PTC("PerturbIncreaseSpeed 0.000000 ");
PTC("PerturbWalkPercent 0.000000 ");
PTC("PerturbFiringIncreaseSpeed 0.000000");
PTC("PerturbRecoil 0.000000 ");
PTC("FireMovePerturb 0.000000 ");
PTC("ZoomedFireMoveDuckPerturb 0.000000 ");
PTC("ZoomedFireMovePerturb 0.000000 ");
PTC("ZoomedFireDuckPerturb 0.000000 ");
}else{
PTC("PerturbRotationEffect 3.000000 ");
PTC("PerturbIncreaseSpeed 3.000000");
PTC("PerturbWalkPercent 9.000000");
PTC("PerturbFiringIncreaseSpeed 0.500000");
PTC("PerturbRecoil 9.000000");
PTC("FireMovePerturb 9.000000");
PTC("ZoomedFireMoveDuckPerturb 9.000000");
PTC("ZoomedFireMovePerturb 9.000000");
PTC("ZoomedFireDuckPerturb 9.000000");
}
//no reload
if (M00000006 >0){
rELoad((LPVOID)RELOAD, "\x90\x90\x90\x90\x90\x90", 6);
}else{
rELoad((LPVOID)RELOAD, "\x0F\x84\xB1\x01\x00\x00", 6);
}
if (M00000007 >0){
PTC("WireframeModels 1");
}else{
PTC("WireframeModels 0");
}
if (M00000008 >0){
PTC("WireFrame 1");
}else{
PTC("WireFrame 0");
}
if (M00000009 >0){
PTC("BaseMoveAccel 3000.000000 ");
PTC("StartAccel 3000.000000 ");
PTC("MaxAccel 3000.000000 ");
PTC("AccelInc 3000.000000 ");
PTC("WalkVel 3000.000000 ");
PTC("FRunVel 3000.000000 ");
PTC("BRunVel 3000.000000 ");
PTC("SRunVel 3000.000000 ");
}else{
PTC("BaseMoveAccel 3000.000000");
PTC("StartAccel 500.000000 ");
PTC("MaxAccel 3000.000000");
PTC("AccelInc 6000.000000");
PTC("WalkVel 70.000000");
PTC("FRunVel 285.000000");
PTC("BRunVel 285.000000");
PTC("SRunVel 285.000000");
}
if(M000000010 > 0){
PTC("PlayerGravity -1000");
if(GetAsyncKeyState(VK_SPACE)<0){
PTC("PlayerGravity 800");
}
}
//ghost
if (M000000011 >0){
PTC("CamMaxPosYOffset -1000.000000");
PTC("PlayerGravity 800");
}else{
PTC("CamMaxPosYOffset 1000.000000");
PTC("PlayerGravity -800");
}
if (M000000012 >0){
PTC( "FlareBlindCamAngle 0" );
}else{
PTC("FlareBlindCamAngle 243");
}
if (M000000013 >0){
if(position > 0xCC && target > 0xCC )
if(position > 0xC8 && target > 0xC8 )
if(position > 0xD0 && target > 0xD0 ){
*(float*)(position) = *(float*)(target);
*(float*)(position+0x9) = *(float*)(target+0x9);
*(float*)(position-0x3) = *(float*)(target-0x3);
}
}
if (M000000014>0){
POINT myCursor;
GetCursorPos(&myCursor);
if(GetAsyncKeyState(VK_LBUTTON)) {
menux = myCursor.x;
menuy = myCursor.y;
}
}
if (M000000015>0){
if(position > 0xCC && target > 0xCC )
if(position > 0xC8 && target > 0xC8 )
if(position > 0xD0 && target > 0xD0 ){
*(float*)target = *(float*)position;
*(float*)(target+0x9) = *(float*)(position+0x9);
*(float*)(target-0x3) = *(float*)(position-0x3);
}
}
if(Mvisible){
}
Menu.MenuShow(menux,menuy,Directx.pFont);
Menu.MenuNav();
}
DWORD cBase::GetPointer(int index)
{
DWORD* devicePtr = ***(DWORD****)0x909EF8;
if( devicePtr == NULL )
return 0;
return devicePtr[index];
}
bool cBase::IsGameReadyForHook(void)
{
if( GetModuleHandle( "d3d9.dll" ) != NULL
&& GetModuleHandle( "ClientFX.fxd" ) != NULL
&& GetModuleHandle( "CShell.dll" ) != NULL )
return true;
return false;
}
DWORD WINAPI dwMainThread(LPVOID)
{
while ( !Base.IsGameReadyForHook() )
Sleep(iWaitTime);
Directx.Hook();
return 0;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if ( dwReason == DLL_PROCESS_ATTACH )
{
#ifdef LOG
DeleteFile(LogPath);
#endif
CreateThread(NULL, NULL, dwMainThread, NULL, NULL, NULL);
}
return TRUE;
}