Hook DIP Engine ----Chams Color D3D
4 participantes
Página 1 de 1
Hook DIP Engine ----Chams Color D3D
- Código:
#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
// NUMPAD1 => Types of chams.
// NUMPAD2 => Types of colors for front and back.
// LEFT and Right => Change colors.
// Change here the version of your Combat Arms => CABR or CAEU or CANA or CAKR
#define CABR
// Actual Address: 06/03/2012
#ifdef CABR
// Combat Arms Brazil
#define GameStatus 0x377F0DDC
#define DIPEngine 0x006A086A
#endif
#ifdef CAEU
// Combat Arms Europe
#define GameStatus 0x37806FC4
#define DIPEngine 0x006A3E0A
#endif
#ifdef CANA
// Combat Arms North American
#define GameStatus 0x37806FC4
#define DIPEngine 0x006A3E1A
#endif
#ifdef CAKR
// Combat Arms Korean
#define GameStatus 0x3774C6F0
#define DIPEngine 0x006A358A
#endif
DWORD retDIPEngine = (DIPEngine + 0x8);
INT chams;
INT color[2];
INT indexcolor;
#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 )
VOID SetLightChams(LPDIRECT3DDEVICE9 pDevice, FLOAT A, FLOAT R, FLOAT G, FLOAT B)
{
D3DMATERIAL9 pMaterial;
ZeroMemory(&pMaterial, sizeof(D3DMATERIAL9));
pDevice->SetRenderState(D3DRS_LIGHTING, TRUE);
//Ambient
pMaterial.Ambient.a = (A/255);
pMaterial.Ambient.r = (R/255);
pMaterial.Ambient.g = (G/255);
pMaterial.Ambient.b = (B/255);
//Diffuse
pMaterial.Diffuse.a = (A/255);
pMaterial.Diffuse.r = (R/255);
pMaterial.Diffuse.g = (G/255);
pMaterial.Diffuse.b = (B/255);
//Specular
pMaterial.Specular.a = (A/255);
pMaterial.Specular.r = (R/255);
pMaterial.Specular.g = (G/255);
pMaterial.Specular.b = (B/255);
pDevice->SetMaterial(&pMaterial);
}
__declspec( naked ) HRESULT WINAPI DIPMidfunction( )
{
static LPDIRECT3DDEVICE9 pDevice;
static INT BaseVertexIndex;
static UINT MinVertexIndex, NumVertices, startIndex, primCount;
__asm
{
MOV ECX, DWORD PTR DS:[EAX]
MOV EDX, DWORD PTR DS:[ECX + 0x148]
MOV DWORD PTR DS:[pDevice], EAX;
MOV ECX, DWORD PTR DS:[EBP + 0x18]
MOV DWORD PTR DS:[BaseVertexIndex], ECX
MOV ECX, DWORD PTR DS:[EBP + 0x8]
MOV DWORD PTR DS:[MinVertexIndex], ECX
MOV ECX, DWORD PTR DS:[EBP + 0x10]
MOV DWORD PTR DS:[NumVertices], ECX
MOV ECX, DWORD PTR DS:[EBP + 0xC]
MOV DWORD PTR DS:[startIndex], ECX
MOV ECX, DWORD PTR DS:[EBP + 0x14]
MOV DWORD PTR DS:[primCount], ECX
PUSHAD
}
if( chams ) {
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
if( chams == 1 ) {
if( color[0] == 1 ) SetLightChams( pDevice, 255, 255, 000, 000 );
if( color[0] == 2 ) SetLightChams( pDevice, 255, 000, 255, 000 );
if( color[0] == 3 ) SetLightChams( pDevice, 255, 000, 000, 255 );
if( color[0] == 4 ) SetLightChams( pDevice, 255, 000, 000, 000 );
}
if( chams == 2 ) {
pDevice->SetRenderState( D3DRS_LIGHTING, D3DZB_TRUE );
pDevice->SetRenderState( D3DRS_SHADEMODE, D3DSHADE_FLAT );
pDevice->SetRenderState( D3DRS_FOGENABLE, D3DZB_FALSE );
if( color[0] == 1 ) pDevice->SetRenderState( D3DRS_AMBIENT, Red );
if( color[0] == 2 ) pDevice->SetRenderState( D3DRS_AMBIENT, Green );
if( color[0] == 3 ) pDevice->SetRenderState( D3DRS_AMBIENT, Blue );
if( color[0] == 4 ) pDevice->SetRenderState( D3DRS_AMBIENT, Black );
}
if( chams > 2 ) {
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, D3DZB_TRUE );
pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVDESTCOLOR );
if( chams == 3 ) pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVSRCCOLOR );
if( chams == 4 ) pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVSRCALPHA );
}
pDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount );
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );
if( chams == 1 ) {
if( color[1] == 1 ) SetLightChams( pDevice, 255, 255, 000, 000 );
if( color[1] == 2 ) SetLightChams( pDevice, 255, 000, 255, 000 );
if( color[1] == 3 ) SetLightChams( pDevice, 255, 000, 000, 255 );
if( color[1] == 4 ) SetLightChams( pDevice, 255, 000, 000, 000 );
}
if( chams == 2 ) {
if( color[1] == 1 ) pDevice->SetRenderState( D3DRS_AMBIENT, Red );
if( color[1] == 2 ) pDevice->SetRenderState( D3DRS_AMBIENT, Green );
if( color[1] == 3 ) pDevice->SetRenderState( D3DRS_AMBIENT, Blue );
if( color[1] == 4 ) pDevice->SetRenderState( D3DRS_AMBIENT, Black );
}
if( chams > 2 ) {
pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, D3DZB_TRUE );
pDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVDESTCOLOR );
if( chams == 3 ) pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVSRCCOLOR );
if( chams == 4 ) pDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_INVSRCALPHA );
}
} else {
pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );
}
__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_EXECUTE_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 );
}
VOID Hook( VOID )
{
while( TRUE ) {
if( *(BYTE *)GameStatus == 1 ) {
DetourCreate( (PBYTE)DIPEngine, (PBYTE)DIPMidfunction, 8 );
if( GetAsyncKeyState(VK_NUMPAD1)&1 ) {
chams++;
if(chams > 4) chams = 0;
}
if( GetAsyncKeyState(VK_NUMPAD2)&1 ) indexcolor = !indexcolor;
if( GetAsyncKeyState(VK_LEFT)&1 ) {
color[indexcolor]--;
if(color[indexcolor] < 0) color[indexcolor] = 4;
}
if( GetAsyncKeyState(VK_RIGHT)&1 ) {
color[indexcolor]++;
if(color[indexcolor] > 4) color[indexcolor] = 0;
}
}
else
memcpy( (VOID *)DIPEngine, (CONST VOID *)(PBYTE)"\x8B\x08\x8B\x91\x48\x01\x00\x00", 8 );
Sleep(100);
}
}
BOOL CheckModules( VOID )
{
if( GetModuleHandleA("d3d9.dll") != NULL
&& GetModuleHandleA("CShell.dll") != NULL
&& GetModuleHandleA("ClientFX.fxd") != NULL )
return TRUE;
return FALSE;
}
DWORD WINAPI StartRoutine( LPVOID )
{
while( !CheckModules( ) )
Sleep(100);
Hook( );
return 0;
}
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls( hDll );
if( dwReason == DLL_PROCESS_ATTACH ) {
CreateThread( NULL, NULL, (LPTHREAD_START_ROUTINE)StartRoutine, NULL, NULL, NULL );
}
return TRUE;
}
créditos:
Azorbix,Pheron or Phenomand,Shadow_ and Gellin,We11ington.
IsNamehack- Supreme Member
- Mensagens : 134
Créditos : 180
Obrigado : 12
Data de inscrição : 09/01/2012
Idade : 24
Re: Hook DIP Engine ----Chams Color D3D
Noss tudo isso de código só para um chams...
kkk o negocio não e fácil não
kkk o negocio não e fácil não
Re: Hook DIP Engine ----Chams Color D3D
Obrigado por compartilhar com todos do Hacker Striker!
Ajudar os outros pode ser algo muito simples, porém poucos tem vontade de fazer isto.
Você com certeza ajudará muitos!
Continue assim.
Ajudar os outros pode ser algo muito simples, porém poucos tem vontade de fazer isto.
Você com certeza ajudará muitos!
Continue assim.
[GM]ϟ iCяαzÿ-Sнσт ™- Ultra Member
- Mensagens : 51
Créditos : 113
Obrigado : 12
Data de inscrição : 16/02/2012
Re: Hook DIP Engine ----Chams Color D3D
de boa mano...
Hacker Striker- Administrador
- Mensagens : 439
Créditos : 3138
Obrigado : 115
Data de inscrição : 16/12/2011
Idade : 26
Localização : Rio de janeiro
Tópicos semelhantes
» [Patched]Hacker Striker 2.8 Semi Vip,Life Taker,Weapon Spawn,Modo Deus...
» Dica Atualizar Detour\Hook
» CHAMS VIOLETA
» New chams BRAANCO
» Chams Sudden Attack v2
» Dica Atualizar Detour\Hook
» CHAMS VIOLETA
» New chams BRAANCO
» Chams Sudden Attack v2
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|