#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// NUMPAD1 => On/Off chams.
// NUMPAD2 => Change colors.
#define DIPEngine 0x004B490D
DWORD retDIPEngine = ( DIPEngine + 0x8 );
INT chams;
INT color;
#define Red D3DCOLOR_ARGB( 255, 255, 000, 000 )
#define Green D3DCOLOR_ARGB( 255, 000, 255, 000 )
#define Blue D3DCOLOR_ARGB( 255, 000, 000, 255 )
#define Black D3DCOLOR_ARGB( 255, 000, 000, 000 )
__declspec( naked ) HRESULT WINAPI DIPMidfunction( )
{
static LPDIRECT3DDEVICE9 pDevice;
__asm
{
MOV EDX, DWORD PTR DS:[EAX]
MOV EDX, DWORD PTR DS:[EDX + 0x148]
MOV DWORD PTR DS:[pDevice], EAX
PUSHAD
}
if( GetAsyncKeyState(VK_NUMPAD1)&1 )
chams = !chams;
if( GetAsyncKeyState(VK_NUMPAD2)&1 )
color++;
if( color > 4 )
color = 0;
if( chams )
{
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
if( color == 1 ) pDevice->SetRenderState( D3DRS_AMBIENT, Red );
if( color == 2 ) pDevice->SetRenderState( D3DRS_AMBIENT, Green );
if( color == 3 ) pDevice->SetRenderState( D3DRS_AMBIENT, Blue );
if( color == 4 ) pDevice->SetRenderState( D3DRS_AMBIENT, Black );
}
__asm
{
POPAD
JMP retDIPEngine
}
}
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 );
}
DWORD WINAPI StartRoutine( LPVOID )
{
while( TRUE )
{
if( memcmp( ( void * )DIPEngine, ( void * )( PBYTE )"\x8B\x10", 2 ) == 0 )
{
Sleep(200);
DetourCreate( ( PBYTE )DIPEngine, ( PBYTE )DIPMidfunction, 8 );
}
}
return 0;
}
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if( dwReason == DLL_PROCESS_ATTACH )
{
DisableThreadLibraryCalls( hDll );
MessageBox( 0, "Hook DIP Engine", "Crossfire", 0 );
CreateThread( 0, 0, (LPTHREAD_START_ROUTINE)StartRoutine, 0, 0, 0 );
}
return TRUE;
}
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// NUMPAD1 => On/Off chams.
// NUMPAD2 => Change colors.
#define DIPEngine 0x004B490D
DWORD retDIPEngine = ( DIPEngine + 0x8 );
INT chams;
INT color;
#define Red D3DCOLOR_ARGB( 255, 255, 000, 000 )
#define Green D3DCOLOR_ARGB( 255, 000, 255, 000 )
#define Blue D3DCOLOR_ARGB( 255, 000, 000, 255 )
#define Black D3DCOLOR_ARGB( 255, 000, 000, 000 )
__declspec( naked ) HRESULT WINAPI DIPMidfunction( )
{
static LPDIRECT3DDEVICE9 pDevice;
__asm
{
MOV EDX, DWORD PTR DS:[EAX]
MOV EDX, DWORD PTR DS:[EDX + 0x148]
MOV DWORD PTR DS:[pDevice], EAX
PUSHAD
}
if( GetAsyncKeyState(VK_NUMPAD1)&1 )
chams = !chams;
if( GetAsyncKeyState(VK_NUMPAD2)&1 )
color++;
if( color > 4 )
color = 0;
if( chams )
{
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
if( color == 1 ) pDevice->SetRenderState( D3DRS_AMBIENT, Red );
if( color == 2 ) pDevice->SetRenderState( D3DRS_AMBIENT, Green );
if( color == 3 ) pDevice->SetRenderState( D3DRS_AMBIENT, Blue );
if( color == 4 ) pDevice->SetRenderState( D3DRS_AMBIENT, Black );
}
__asm
{
POPAD
JMP retDIPEngine
}
}
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 );
}
DWORD WINAPI StartRoutine( LPVOID )
{
while( TRUE )
{
if( memcmp( ( void * )DIPEngine, ( void * )( PBYTE )"\x8B\x10", 2 ) == 0 )
{
Sleep(200);
DetourCreate( ( PBYTE )DIPEngine, ( PBYTE )DIPMidfunction, 8 );
}
}
return 0;
}
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if( dwReason == DLL_PROCESS_ATTACH )
{
DisableThreadLibraryCalls( hDll );
MessageBox( 0, "Hook DIP Engine", "Crossfire", 0 );
CreateThread( 0, 0, (LPTHREAD_START_ROUTINE)StartRoutine, 0, 0, 0 );
}
return TRUE;
}
Thu Sep 06, 2012 7:47 am by alvin-vince
» Undetected DIP Hook
Sat Sep 01, 2012 6:07 pm by alvin-vince
» Deleted Cshell => CF still working ?!
Sat Aug 25, 2012 11:11 am by alvin-vince
» My Base Wall hack working, NoWeaponChangeDelay not working
Fri Aug 24, 2012 7:35 am by alvin-vince
» Why you make a loob for every hack .. i fixed for you try this >>
Fri Aug 24, 2012 7:33 am by alvin-vince
» -[I]fLuX Undetected CrossFire Base after patch
Fri Aug 24, 2012 7:28 am by alvin-vince
» (My First Hack) Simple Hack for CFPH - With Key And Sound
Sun Aug 19, 2012 9:07 am by alvin-vince
» [ New ] Release Glenox Public Cheat v9.2(Alvin-vince)
Sun Aug 19, 2012 8:13 am by alvin-vince
» Mamo`s Hack V1.8 | Wallhack + Fast Knife + OHK Knife ++MORE | Original Sound |
Fri Aug 10, 2012 5:30 pm by alvin-vince