CREDIT TO Hacker Fail
By Hacker Fail
-------------------------------------------------------------------------------------------------------
adress.h
--------------------------------------------------------------------------------------------------------------------------------------#define _CRT_SECURE_NO_WARNINGS
#pragma warning( disable: 4172 )
#pragma warning( disable: 4700 )
#pragma warning( disable: 4244 )
#pragma warning( disable: 4715 )
#pragma warning( disable: 4800 )
#pragma warning( disable: 4101 )
#pragma warning( disable: 4804 )
#pragma warning( disable: 4430 )
// [ Hook Engine ]
#define StartOptimized2D 0x54F370
#define PresentEngine 0x662C96
#define BeginEndScene 0x5B6C66
#define DipEngine 0x665D4D
#define Start3D 0x54EF9F
#define EndScene 0x5B6103
// [ Engine.exe ]
#define DeviceGame 0x96B040
#define LTClientEXE 0x492CF0
#define SendToServer 0x47CF20
#define WorldToScreen 0x49EE40
#define CursorCenter 0x7C859C
#define DrawPrimitive 0x7E3E58
#define IntersectSegment 0x479947
#define GlassWall 0x5B5819
#define WireFrame 0x5C3BB9
#define RemoveTexture 0x5B582C
#define FullBright 0x5B59B2
#define RemoveEffects 0x5B582C
#define Bypass 0x53AE29
// [ CShell.dll ]
#define GameStatus 0x37A00790
#define UnlimitedAmmo 0x37489617
#define WeaponSet 0x37A55758
#define LTClientDLL 0x379E7D5C
#define PlayerByIndex 0x371AA530
#define GCS 0x37A25B00
#define PlayerManager 0x37A25BE4
#define PlayerStatus 0x37A05808 // I didn´t test
#define WeaponInformation 0x37A057E8
#define CharacterFX 0x37A05D28
#define LocalPlayer 0x371AAFB0
#define ClientInfoMgr 0x379E34BC
#define CameraUpdate 0x373934EF
#define WeaponMGR 0x37A4F5A4
#define GetConsoleInt 0x373E4CD0
#define LTCommon 0x37A57B80
#define BuildFont 0x376009F0
#define GetFontHandle 0x373A9260
#define FillFont 0x376016A0
#define FontECX 0x37A4F46C
#define LocalPTR 0x37A55C54
#define LTCSBase 0x379E7D40
#define SuperBullets 0x3748D5A6
#define ESPNames1 0x3711FD9C
#define ESPNames2 0x3711FDCA
#define BypassChat 0x376116F0
#define BypassMenu 0x37611680
#define NoRecoil 0x37390438
#define NoReload 0x374925C2
// [ PushToConsole ]
#define Consoles 0x379CAA38
#define Statitics 0x379CAA64
#define FPS 0x379CAA40
#define Jump 0x379CF99C
#define PickUP 0x379D764C
#define BaseMoveAccel 0x379CF87C
#define StartAccel 0x379CF8A0
#define MaxAccel 0x379CF8C4
#define AccelInc 0x379CF8E8
#define WalkVel 0x379CF90C
#define BRunVel 0x379CF954
#define FRunVel 0x379CF930
#define SRunVel 0x379CF978
#define DuckVel 0x379CF834
// [ EhSvc.dll ]
#define Detection 0xB050
#define HSAntiCrash 0x4D524
#define AsmDetection 0x3B29D
#define NanoCheck1 0x30D3A
#define NanoCheck2 0x4A06F
#define EhsvcSelfCrC 0x114F10
#define HSCallBack1 0xF0000000
#define HSCallBack2 0xB0E8
#define HSNanoScan1 0xBCBFF
#define HSNanoScan2 0xB9381
#define ClientFX 0x6BF34
class.h
------------------------------------------------------------------------------------------------------------------------
struct __Object
{
public:
DWORD Unknown; //0x0000
float xBound1; //0x0004
float yBound1; //0x0008
float zBound1; //0x000C
float xBound2; //0x0010
float yBound2; //0x0014
float zBound2; //0x0018
char unknown28[172]; //0x001C
D3DXVECTOR3 Pos; //0x00C8
//LTRotation Rot; //0x00D4
char unknown228[180]; //0x00E4
//LTVector Vel; //0x0198
CHAR Pad[4];
D3DXVECTOR3 origin;
};
class pPlayerInfo
{
public:
__int32 pPing; //0x0000
__int32 index; //0x0004
__int32 ID; //0x0008
char unknown2[8]; //0x000C
char Name[20]; //0x0014
char unknown3[4]; //0x0028
__Object *Object; //0x002C
__int32 Kills; //0x0030
__int32 Deaths; //0x0034
char unknown4[44]; //0x0038
__int32 HeadShots; //0x0064
char unknown5[12]; //0x0068
__int32 Team; //0x0074
char unknown6[4]; //0x0078
BYTE IsDead; //0x007C
char unknown7[659];
pPlayerInfo* PlayerPrev; //0x0310
pPlayerInfo* PlayerNext; //0x0314
};
class CILTDrawPrim
{
public :
virtual void function0();
virtual void function1();
virtual void function2();
virtual void function3();
virtual void function4();
virtual void function5();
virtual void function6();
virtual void function7();
virtual void function8();
virtual void function9();
virtual void SetRenderMode(int mode);
char unknown[16180]; //0x0004 (3F38)
D3DVIEWPORT9 ViewPort;//433C -> 3F38
D3DXMATRIX World; //0x4354 -> 3F50
D3DXMATRIX View; //0x4394 -> 3F90
D3DXMATRIX Projection; //0x43D4 -> 3fD0
};
typedef pPlayerInfo *(__thiscall *lpGetLocalPlayer)(unsigned long ulThis);
lpGetLocalPlayer GetLocalPlayer;
typedef pPlayerInfo *(__thiscall *lpGetPlayerByIndex)(unsigned long ulThis, INT index, INT unk);
lpGetPlayerByIndex GetPlayerByIndex;
funcs.h
------------------------------------------------------------------------------------------------------------------------------------------#include "class.h"
void FillRGB( int x, int y, int w, int h, D3DCOLOR cor, IDirect3DDevice9* pDevice )
{
D3DRECT rec = { x, y, x + w, y + h };
pDevice->Clear( 1, &rec, D3DCLEAR_TARGET, cor, 0, 0 );
}
void DrawBorder( int x, int y, int w, int h, int px, D3DCOLOR CorBorda, IDirect3DDevice9* pDevice )
{
FillRGB( x, (y + h - px), w, px, CorBorda, pDevice );
FillRGB( x, y, px, h, CorBorda, pDevice );
FillRGB( x, y, w, px, CorBorda, pDevice );
FillRGB( (x + w - px), y, px, h, CorBorda, pDevice );
}
void DrawESPBox( D3DXVECTOR3 Head, D3DXVECTOR3 Foot, DWORD dwColor, LPDIRECT3DDEVICE9 pDevice )
{
D3DXVECTOR3 Box = Head - Foot;
if( Box.y < 0 )
Box.y *= -1;
int BoxWidth = (int)Box.y / 2;
int DrawX = (int)Head.x - ( BoxWidth / 2 );
int DrawY = (int)Head.y;
DrawBorder( DrawX, DrawY, BoxWidth, (int)Box.y, 2, dwColor, pDevice );
DrawBorder( DrawX, DrawY, BoxWidth, (int)Box.y, 1, 0xFF000000, pDevice );
}
main.cpp
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#include "address.h"
#include "funcs.h"
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
DWORD DIPD3D9, retDIPD3D9;
int Variable[100];
void Render(LPDIRECT3DDEVICE9 pDevice)
{
IDirect3DVertexBuffer9* pStreamData = NULL;
UINT iOffsetInBytes, iStride;
pDevice->GetStreamSource(0, &pStreamData, &iOffsetInBytes, &iStride);
if(GetAsyncKeyState(VK_NUMPAD1)&1) Variable[1] =! Variable[1];
if(GetAsyncKeyState(VK_NUMPAD2)&1) Variable[2] =! Variable[2];
if( Variable[1] )
{
if(iStride == 44) // wallhacker
{
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
}
}
if( Variable[2] ) // esp boxes
{
GetPlayerByIndex = (lpGetPlayerByIndex)PlayerByIndex;
GetLocalPlayer = (lpGetLocalPlayer)LocalPlayer;
unsigned long ulThis = *(unsigned long *)ClientInfoMgr;
for(INT i = 0; i < 24; i++) // number of players
{
pPlayerInfo *pLocal = GetLocalPlayer(ulThis);
pPlayerInfo *pPlayer = GetPlayerByIndex(ulThis, i, 0);
if( ValidPointer( pPlayer ) && ValidPointer( pPlayer->Object ) )
{
D3DXVECTOR3 HeadPos, FootPos, HeadScreen, FootScreen;
if( !pPlayer->IsDead ) // if you are not dead..
{
HeadPos.x = pPlayer->Object->Pos.x;
HeadPos.y = pPlayer->Object->yBound2;
HeadPos.z = pPlayer->Object->Pos.z;
if( W2S (HeadPos, &HeadScreen ) )
{
FootPos.x = pPlayer->Object->Pos.x;
FootPos.y = pPlayer->Object->yBound1;
FootPos.z = pPlayer->Object->Pos.z;
if (W2S( FootPos, &FootScreen ) )
{
if(pPlayer->Team != pLocal->Team)
{
DrawESPBox( HeadScreen, FootScreen, 0xFFFF0000, pDevice );
} else {
DrawESPBox( HeadScreen, FootScreen, 0xFF00FF00, pDevice );
}
}
}
}
}
}
}
}
__declspec( naked ) HRESULT WINAPI DIPMidfunction( )
{
static LPDIRECT3DDEVICE9 pDevice;
__asm
{
MOV EDI, EDI
PUSH EBP
MOV EBP, ESP
MOV EAX, DWORD PTR SS:[EBP + 0x8]
MOV DWORD PTR DS:[pDevice], EAX
}
Render(pDevice);
__asm
{
POP EBP
JMP retDIPD3D9
}
}
VOID *DetourCreate( BYTE *src, CONST BYTE *dst, CONST INT len )
{
BYTE *jmp =( BYTE * ) malloc( len + 5 );
DWORD dwBack;
VirtualProtect( src, len, PAGE_READWRITE, &dwBack );
memcpy( jmp, src, len );
jmp += len;
jmp[0] = 0xE9;
*( DWORD * )( jmp + 1 ) = ( DWORD )( src + len - jmp ) - 5;
src[0] = 0xE9;
*( DWORD * )( src + 1 ) = ( DWORD )( dst - src ) - 5;
for( INT i = 5; i < len; i++ )
src[i] = 0x90;
VirtualProtect( src, len, dwBack, &dwBack );
return ( jmp - len );
}
BOOL bCompare( CONST BYTE *pData, CONST BYTE *bMask, CONST CHAR *szMask )
{
for( ; *szMask; ++szMask, ++pData, ++bMask )
if( *szMask == '0' && *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( bCompare( ( BYTE * )( dwAddress + i ), bMask, szMask ) )
return ( DWORD )( dwAddress + i );
return 0;
}
DWORD WINAPI StartRoutine( LPVOID )
{
while( TRUE )
{
DWORD hD3D = ( DWORD )LoadLibrary( "d3d9.dll" );
if( !DIPD3D9 )
{
// Windows XP
DIPD3D9 = FindPattern( hD3D,
0x128000,
( PBYTE )"\x8B\xFF\x55\x8B\xEC\x5D\xE9\x00\x00\x00\x00\xCC \xCC\xCC\xCC\xCC\x8B\xFF\x55\x8B\xEC\x51",
"0000000????0000000000" );
if( DIPD3D9 )
{
retDIPD3D9 = DIPD3D9 + 0x6;
DetourCreate( ( PBYTE )DIPD3D9, ( PBYTE )DIPMidfunction, 5 );
}
}
if( !DIPD3D9 )
{
// Windows 7
DIPD3D9 = FindPattern( hD3D,
0x128000,
( PBYTE )"\xC3\x90\x90\x90\x90\x90\x8B\xFF\x55\x8B\xEC\x5D \xEB\x05\x90\x90\x90\x90\x90\x8B\xFF\x55\x8B\xEC\x 6A\xFF",
"00000000000000000000000000" );
if( DIPD3D9 )
{
retDIPD3D9 = ( DIPD3D9 + 0x6 ) + 0x6;
DetourCreate( ( PBYTE )( DIPD3D9 + 0x6 ), ( PBYTE )DIPMidfunction, 5 );
}
}
}
return 0;
}
CREDIT TO Hacker Fail
By Hacker Fail