Undetected and Universal D3D Hook

Posts 1–8 of 8 · Page 1 of 1
Undetected and Universal D3D Hook
Hello again MPGH

Code:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <d3d9.h>
#include <d3dx9.h>

#pragma comment( lib, "d3d9.lib" )
#pragma comment( lib, "d3dx9.lib" )

DWORD retWallHackMidFuc = NULL, ADDR_WALLHACK_HOOK = NULL;
const bool bDataCompare(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 dwModule, DWORD dwLen, BYTE *bMask, char *szMask)
{
	for (DWORD i = 0; i < dwLen; i++)
		if (bDataCompare((BYTE *)(dwModule + i), bMask, szMask))
			return (DWORD)(dwModule + i);
	return EXIT_SUCCESS;
}
__declspec(naked) HRESULT WINAPI hkWallHackMidFunction()
{
	static LPDIRECT3DDEVICE9 pDevice;

	__asm
	{
		MOV EDX, DWORD PTR DS : [EAX]
		MOV EDX, DWORD PTR DS : [EDX + 0xE4]
		MOV DWORD PTR DS : [pDevice], EAX
		PUSHAD
	}

	pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);//WallHack
	pDevice->SetRenderState(D3DRS_LIGHTING, D3DZB_FALSE);//FullBright
	__asm
	{
		POPAD
		JMP retWallHackMidFuc
	}
}
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 StartAddress()
{
	ADDR_WALLHACK_HOOK = FindPattern(0x400000, 0x1154000,
		(PBYTE) "\x8B\x10\x8B\x92\x00\x00\x00\x00\x51\x6A\x0E\x50\xFF\xD2\x8B\x94\x24\x00\x00\x00\x00", (char *) "xxxx????xxxxxxxxx????");

	retWallHackMidFuc = (DWORD)(ADDR_WALLHACK_HOOK + 0x8);

	if (memcmp((VOID *)ADDR_WALLHACK_HOOK, (VOID *)(PBYTE)"\x8B\x10", 2) == 0)
	{
		DetourCreate((PBYTE)ADDR_WALLHACK_HOOK, (PBYTE)hkWallHackMidFunction, 5);
	}
	return EXIT_SUCCESS;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
	switch (ul_reason_for_call)
	{
	case DLL_PROCESS_ATTACH:
		CreateThread(0, 0, (LPTHREAD_START_ROUTINE)StartAddress, 0, 0, 0);
		break;
	case DLL_THREAD_ATTACH:
	case DLL_THREAD_DETACH:
	case DLL_PROCESS_DETACH:
		break;
	}

	return TRUE;
}
Credits:
@luizimloko
@We11
@dreek1
Quote Originally Posted by gicogico223 View Post
is this working for cf ph?
Abnormal Memory Access if you do this
Quote Originally Posted by ronjay24 View Post
Abnormal Memory Access if you do this
Agree.. detected for cf ph or maybe we are just noob. LOL.. :P
Quote Originally Posted by ronjay24 View Post
Abnormal Memory Access if you do this
this is working fine in cf ph u need to make it undetected with xtrap
how to cpmpile this? does anyone have a dll that is compile already please?
Quote Originally Posted by kentpachi View Post
how to cpmpile this? does anyone have a dll that is compile already please?
nice dig in a 2018 post, keep it up
I think this base is detected cauz it is from 2018
Posts 1–8 of 8 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?