Updated DIP Engine Hook

Posts 1–15 of 29 · Page 1 of 2
Updated DIP Engine Hook
Hello..

Code:
DWORD retDIPHook, DIPHook;
int wallhack = 1;
__declspec(naked) HRESULT WINAPI aDIPHook()
{
	static LPDIRECT3DDEVICE9 pDevice;

	__asm
	{
		MOV ECX, DWORD PTR DS : [EDI]
		MOV EDX, DWORD PTR DS : [ECX + 0x148]
		MOV DWORD PTR DS : [pDevice], EDI
		PUSHAD
	}

	if (wallhack)
		pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

	__asm
	{
		POPAD
		JMP retDIPHook
	}
}

bool Ready2Hook()
{
	if (GetModuleHandle("CShell.dll") != 0 && GetModuleHandle("ClientFx.fxd") != 0)
		return true;
	return false;
}

DWORD WINAPI Call()
{
	while (!Ready2Hook())
		Sleep(200);

	while (TRUE)
	{
		DIPHook = FindPattern((DWORD)GetModuleHandle("crossfire.exe"), 0xFFFFFF, (PBYTE)"\x8B\x0F\x8B\x91\x00\x00\x00\x00\x53\x6A\x00\x55\x6A\x00\x6A\x00\x6A\x04\x57\xFF\xD2\x5F\x5E\x5D\x85\xC0", "0000????00?00?0?0?00000000");
		if (DIPHook != 0)
		{
			retDIPHook = (DIPHook + 0x8);
			DetourCreate((PBYTE)DIPHook, (PBYTE)aDIPHook, 8);
		}
	}
	return 0;
}
credits:
mpgh
me for updating.
are pattern for ru crossfire the same? because the wh doesnt work...

here my code

#include <windows.h>
#include <d3d9.h>
#include <d3dx9.h>

DWORD retDIPHook, DIPHook;
int wallhack = 1;




bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
if(*szMask=='x' && *pData!=*bMask) return 0;
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;
}


__declspec(naked) HRESULT WINAPI aDIPHook()
{
static LPDIRECT3DDEVICE9 pDevice;

__asm
{
MOV ECX, DWORD PTR DS : [EDI]
MOV EDX, DWORD PTR DS : [ECX + 0x148]
MOV DWORD PTR DS : [pDevice], EDI
PUSHAD
}

if (wallhack)
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

__asm
{
POPAD
JMP retDIPHook
}
}

bool Ready2Hook()
{
if (GetModuleHandle("CShell.dll") != 0 && GetModuleHandle("ClientFx.fxd") != 0)
return true;
return false;
}

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 Call()
{
while (!Ready2Hook())
Sleep(200);

while (TRUE)
{
DIPHook = FindPattern((DWORD)GetModuleHandle("crossfire.exe" ), 0xFFFFFF, (PBYTE)"\x8B\x0F\x8B\x91\x00\x00\x00\x00\x53\x6A\x 00\x55\x6A\x00\x6A\x00\x6A\x04\x57\xFF\xD2\x5F\x5E \x5D\x85\xC0", "0000????00?00?0?0?00000000");
if (DIPHook != 0)
{
retDIPHook = (DIPHook + 0x8);
DetourCreate((PBYTE)DIPHook, (PBYTE)aDIPHook, 8);
}
}
return 0;
}
This is for cfwest, idk about cfru
I don't real know much about these codes.
How do u use it?
Quote Originally Posted by mamo007 View Post
This is for cfwest, idk about cfru
patched for cfwest.
Quote Originally Posted by TheG2ek View Post
patched for cfwest.
Code:
DWORD retDIPHook, DIPHook;
int wallhack = 1;
__declspec(naked) HRESULT WINAPI aDIPHook()
{
	static LPDIRECT3DDEVICE9 pDevice;

	__asm
	{
		MOV EAX, DWORD PTR DS : [EDI]
		MOV ECX, DWORD PTR DS : [EAX + 0x148]
		MOV DWORD PTR DS : [pDevice], EDI
                PUSHAD
	}

	if (wallhack)
		pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

	__asm
	{
		POPAD
		JMP retDIPHook
	}
}

bool Ready2Hook()
{
	if (GetModuleHandle("CShell.dll") != 0 && GetModuleHandle("ClientFx.fxd") != 0)
		return true;
	return false;
}

DWORD WINAPI Call()
{
	while (!Ready2Hook())
		Sleep(200);

	while (TRUE)
	{
		DIPHook = FindPattern((DWORD)GetModuleHandle("crossfire.exe"), 0xFFFFFF, (PBYTE)"\x8B\x07\x8B\x88\x00\x00\x00\x00\x55\x6A\x00\x53\x6A\x00\x6A\x00\x6A\x04\x57\xFF\xD1\x85\xC0\x7C", "0000????00?00?0?0?000000");
		if (DIPHook != 0)
		{
			retDIPHook = (DIPHook + 0x8);
			DetourCreate((PBYTE)DIPHook, (PBYTE)aDIPHook, 8);
		}
	}
	return 0;
}
Have fun.
Quote Originally Posted by mamo007 View Post


Code:
DWORD retDIPHook, DIPHook;
int wallhack = 1;
__declspec(naked) HRESULT WINAPI aDIPHook()
{
	static LPDIRECT3DDEVICE9 pDevice;

	__asm
	{
		MOV EAX, DWORD PTR DS : [EDI]
		MOV ECX, DWORD PTR DS : [EAX + 0x148]
		MOV DWORD PTR DS : [pDevice], EDI
                PUSHAD
	}

	if (wallhack)
		pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

	__asm
	{
		POPAD
		JMP retDIPHook
	}
}

bool Ready2Hook()
{
	if (GetModuleHandle("CShell.dll") != 0 && GetModuleHandle("ClientFx.fxd") != 0)
		return true;
	return false;
}

DWORD WINAPI Call()
{
	while (!Ready2Hook())
		Sleep(200);

	while (TRUE)
	{
		DIPHook = FindPattern((DWORD)GetModuleHandle("crossfire.exe"), 0xFFFFFF, (PBYTE)"\x8B\x07\x8B\x88\x00\x00\x00\x00\x55\x6A\x00\x53\x6A\x00\x6A\x00\x6A\x04\x57\xFF\xD1\x85\xC0\x7C", "0000????00?00?0?0?000000");
		if (DIPHook != 0)
		{
			retDIPHook = (DIPHook + 0x8);
			DetourCreate((PBYTE)DIPHook, (PBYTE)aDIPHook, 8);
		}
	}
	return 0;
}
Have fun.
Thx , but how can i update Pattern ?

- - - Updated - - -

Quote Originally Posted by luizimloko View Post
Code:
#define ADDR_DIPENGINE_1		0x004DA306
#define ADDR_DIPENGINE_2		0x004E5C94

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_1( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static D3DPRIMITIVETYPE Type;
	static INT BaseVertexIndex;
	static UINT MinVertexIndex, NumVertices, startIndex, primCount;

	__asm
	{
		mov eax, [ eax + 0x148 ]
		mov [ primCount ], edi
		push edi
		mov [ startIndex ], ecx
		push ecx
		mov [ NumVertices ], ebp
		push ebp
		mov [ MinVertexIndex ], edx
		push edx
		push 0
		push 4
		mov [ pDevice ], ebx
		push ebx
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, MinVertexIndex, NumVertices, startIndex, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov edx, ADDR_DIPENGINE_1
		add edx, 0x0F
		jmp edx
	}
}

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_2( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static UINT NumVertices, primCount;

	__asm
	{
		mov ecx, [ eax + 0x148 ]
		mov [ primCount ], ebp
		push ebp
		push 0
		mov [ NumVertices ], ebx
		push ebx
		push 0
		push 0
		push 4
		mov [ pDevice ], edi
		push edi
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, 0, NumVertices, 0, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov eax, ADDR_DIPENGINE_2
		add eax, 0x11
		jmp eax
	}
}

DWORD WINAPI dwStartHook( void * )
{
	while( ( memcmp( ( void * ) ADDR_DIPENGINE_1, "\x8B", 1 ) &&
		   ( memcmp( ( void * ) ADDR_DIPENGINE_2, "\x8B", 1 ) ) ) )
		   Sleep( 10 );

	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_1 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_1 - ADDR_DIPENGINE_1 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x05 ) = 0x90;

	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_2 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_2 - ADDR_DIPENGINE_2 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x05 ) = 0x90;

	return 0;
}
what's aobs of ADDR_DIPENGINE_1 & ADDR_DIPENGINE_2 ?
Quote Originally Posted by TheG2ek View Post



what's aobs of ADDR_DIPENGINE_1 & ADDR_DIPENGINE_2 ?
Code:
//ADDR_DIPENGINE_1:
//8b 80 48 01 00 00 57 51 55 52 6a 00 6a 04 53 ff d0 85 c0 7c ??

//ADDR_DIPENGINE_2:
//8b 88 48 01 00 00 55 6a 00 53 6a 00 6a 00 6a 04 57 ff d1 85 c0 7c ??
Quote Originally Posted by luizimloko View Post


Code:
//ADDR_DIPENGINE_1:
//8b 80 48 01 00 00 57 51 55 52 6a 00 6a 04 53 ff d0 85 c0 7c ??

//ADDR_DIPENGINE_2:
//8b 88 48 01 00 00 55 6a 00 53 6a 00 6a 00 6a 04 57 ff d1 85 c0 7c ??
thank you very much , You are a Gentleman
Code:
#define ADDR_DIPENGINE_1		0x004DA306
#define ADDR_DIPENGINE_2		0x004E5C94

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_1( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static D3DPRIMITIVETYPE Type;
	static INT BaseVertexIndex;
	static UINT MinVertexIndex, NumVertices, startIndex, primCount;

	__asm
	{
		mov eax, [ eax + 0x148 ]
		mov [ primCount ], edi
		push edi
		mov [ startIndex ], ecx
		push ecx
		mov [ NumVertices ], ebp
		push ebp
		mov [ MinVertexIndex ], edx
		push edx
		push 0
		push 4
		mov [ pDevice ], ebx
		push ebx
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, MinVertexIndex, NumVertices, startIndex, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov edx, ADDR_DIPENGINE_1
		add edx, 0x0F
		jmp edx
	}
}

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_2( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static UINT NumVertices, primCount;

	__asm
	{
		mov ecx, [ eax + 0x148 ]
		mov [ primCount ], ebp
		push ebp
		push 0
		mov [ NumVertices ], ebx
		push ebx
		push 0
		push 0
		push 4
		mov [ pDevice ], edi
		push edi
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, 0, NumVertices, 0, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov eax, ADDR_DIPENGINE_2
		add eax, 0x11
		jmp eax
	}
}

DWORD WINAPI dwStartHook( void * )
{
	while( ( memcmp( ( void * ) ADDR_DIPENGINE_1, "\x8B", 1 ) &&
		   ( memcmp( ( void * ) ADDR_DIPENGINE_2, "\x8B", 1 ) ) ) )
		   Sleep( 10 );

	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_1 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_1 - ADDR_DIPENGINE_1 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x05 ) = 0x90;

	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_2 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_2 - ADDR_DIPENGINE_2 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x05 ) = 0x90;

	return 0;
}
Quote Originally Posted by luizimloko View Post
Code:
#define ADDR_DIPENGINE_1		0x004DA306
#define ADDR_DIPENGINE_2		0x004E5C94

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_1( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static D3DPRIMITIVETYPE Type;
	static INT BaseVertexIndex;
	static UINT MinVertexIndex, NumVertices, startIndex, primCount;

	__asm
	{
		mov eax, [ eax + 0x148 ]
		mov [ primCount ], edi
		push edi
		mov [ startIndex ], ecx
		push ecx
		mov [ NumVertices ], ebp
		push ebp
		mov [ MinVertexIndex ], edx
		push edx
		push 0
		push 4
		mov [ pDevice ], ebx
		push ebx
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, MinVertexIndex, NumVertices, startIndex, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov edx, ADDR_DIPENGINE_1
		add edx, 0x0F
		jmp edx
	}
}

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_2( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static UINT NumVertices, primCount;

	__asm
	{
		mov ecx, [ eax + 0x148 ]
		mov [ primCount ], ebp
		push ebp
		push 0
		mov [ NumVertices ], ebx
		push ebx
		push 0
		push 0
		push 4
		mov [ pDevice ], edi
		push edi
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, 0, NumVertices, 0, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov eax, ADDR_DIPENGINE_2
		add eax, 0x11
		jmp eax
	}
}

DWORD WINAPI dwStartHook( void * )
{
	while( ( memcmp( ( void * ) ADDR_DIPENGINE_1, "\x8B", 1 ) &&
		   ( memcmp( ( void * ) ADDR_DIPENGINE_2, "\x8B", 1 ) ) ) )
		   Sleep( 10 );

	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_1 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_1 - ADDR_DIPENGINE_1 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x05 ) = 0x90;

	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_2 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_2 - ADDR_DIPENGINE_2 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x05 ) = 0x90;

	return 0;
}
well, that's more accurate. xd
Quote Originally Posted by luizimloko View Post
Code:
#define ADDR_DIPENGINE_1		0x004DA306
#define ADDR_DIPENGINE_2		0x004E5C94

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_1( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static D3DPRIMITIVETYPE Type;
	static INT BaseVertexIndex;
	static UINT MinVertexIndex, NumVertices, startIndex, primCount;

	__asm
	{
		mov eax, [ eax + 0x148 ]
		mov [ primCount ], edi
		push edi
		mov [ startIndex ], ecx
		push ecx
		mov [ NumVertices ], ebp
		push ebp
		mov [ MinVertexIndex ], edx
		push edx
		push 0
		push 4
		mov [ pDevice ], ebx
		push ebx
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, MinVertexIndex, NumVertices, startIndex, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov edx, ADDR_DIPENGINE_1
		add edx, 0x0F
		jmp edx
	}
}

__declspec( naked ) HRESULT WINAPI DrawIndexedPrimitive_2( void )
{
	static LPDIRECT3DDEVICE9 pDevice;
	static UINT NumVertices, primCount;

	__asm
	{
		mov ecx, [ eax + 0x148 ]
		mov [ primCount ], ebp
		push ebp
		push 0
		mov [ NumVertices ], ebx
		push ebx
		push 0
		push 0
		push 4
		mov [ pDevice ], edi
		push edi
		pushad
	}

	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_FALSE );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFF0000 );
	pDevice->DrawIndexedPrimitive
	( D3DPRIMITIVETYPE::D3DPT_TRIANGLELIST, 0, 0, NumVertices, 0, primCount );
	pDevice->SetRenderState( D3DRS_AMBIENT, 0xFF00FF00 );
	pDevice->SetRenderState( D3DRS_ZENABLE, D3DZB_TRUE );

	__asm
	{
		popad
		mov eax, ADDR_DIPENGINE_2
		add eax, 0x11
		jmp eax
	}
}

DWORD WINAPI dwStartHook( void * )
{
	while( ( memcmp( ( void * ) ADDR_DIPENGINE_1, "\x8B", 1 ) &&
		   ( memcmp( ( void * ) ADDR_DIPENGINE_2, "\x8B", 1 ) ) ) )
		   Sleep( 10 );

	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_1 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_1 - ADDR_DIPENGINE_1 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_1 + 0x05 ) = 0x90;

	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x00 ) = 0xE9;
	*( DWORD * ) ( ADDR_DIPENGINE_2 + 0x01 ) = ( ( DWORD ) DrawIndexedPrimitive_2 - ADDR_DIPENGINE_2 ) - 5;
	*( BYTE  * ) ( ADDR_DIPENGINE_2 + 0x05 ) = 0x90;

	return 0;
}
cf west

#define ADDR_DIPENGINE_1 0x004DBD46
#define ADDR_DIPENGINE_2 0x004D4AB4

- - - Updated - - -

Quote Originally Posted by mamo007 View Post


Code:
DWORD retDIPHook, DIPHook;
int wallhack = 1;
__declspec(naked) HRESULT WINAPI aDIPHook()
{
	static LPDIRECT3DDEVICE9 pDevice;

	__asm
	{
		MOV EAX, DWORD PTR DS : [EDI]
		MOV ECX, DWORD PTR DS : [EAX + 0x148]
		MOV DWORD PTR DS : [pDevice], EDI
                PUSHAD
	}

	if (wallhack)
		pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

	__asm
	{
		POPAD
		JMP retDIPHook
	}
}

bool Ready2Hook()
{
	if (GetModuleHandle("CShell.dll") != 0 && GetModuleHandle("ClientFx.fxd") != 0)
		return true;
	return false;
}

DWORD WINAPI Call()
{
	while (!Ready2Hook())
		Sleep(200);

	while (TRUE)
	{
		DIPHook = FindPattern((DWORD)GetModuleHandle("crossfire.exe"), 0xFFFFFF, (PBYTE)"\x8B\x07\x8B\x88\x00\x00\x00\x00\x55\x6A\x00\x53\x6A\x00\x6A\x00\x6A\x04\x57\xFF\xD1\x85\xC0\x7C", "0000????00?00?0?0?000000");
		if (DIPHook != 0)
		{
			retDIPHook = (DIPHook + 0x8);
			DetourCreate((PBYTE)DIPHook, (PBYTE)aDIPHook, 8);
		}
	}
	return 0;
}
Have fun.

doesn't work
Quote Originally Posted by TheG2ek View Post
cf west

#define ADDR_DIPENGINE_1 0x004DBD46
#define ADDR_DIPENGINE_2 0x004D4AB4

- - - Updated - - -



doesn't work
maybe patched or outdated pattern
Quote Originally Posted by M47Z View Post
maybe patched or outdated pattern
i know i use another way , but i want to ask you 1 question , can you remove hwid ban ? or XIGNCODE Error 0xE019100C ?
Quote Originally Posted by TheG2ek View Post
i know i use another way , but i want to ask you 1 question , can you remove hwid ban ? or XIGNCODE Error 0xE019100C ?
Clear logs and spoof the network driver.
Using your phone's usb thetering also works.
Posts 1–15 of 29 · Page 1 of 2
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Need help?