HelpHow to Make Undetected Hook?

Posts 12 of 2 · Page 1 of 1
How to Make Undetected Hook?
I already use D3D Menu 2013 from UC
but i have no idea or tips how to update it to make undetected the hook
any can give me some tips or teach me? thank you.

Code:
void PreReset(LPDIRECT3DDEVICE9 pDevice)
{ //
	Menu.PreReset();
	return;
}

void PostReset(LPDIRECT3DDEVICE9 pDevice)
{
	Menu.PostReset(pDevice);
	return;
}

typedef HRESULT(WINAPI* oReset)(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
oReset pReset;

HRESULT APIENTRY myReset(LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters)
{
	_asm pushad;

	if (Tools.pLine)
		Tools.pLine->OnLostDevice();

	HRESULT hRet = pReset(pDevice, pPresentationParameters);

	if (SUCCEEDED(hRet))
	{
		if (Tools.pLine)
			Tools.pLine->OnResetDevice();
	}
	_asm popad;

	return hRet;
}

typedef HRESULT(WINAPI* oEndScene)(LPDIRECT3DDEVICE9 pDevice);
oEndScene pEndScene;

HRESULT APIENTRY myEndScene(LPDIRECT3DDEVICE9 pDevice)
{
	_asm pushad;

	if (!Tools.Init)
	{
		D3DXCreateLine(pDevice, &Tools.pLine);
		Tools.Init = TRUE;
	}
	PostReset(pDevice);
	Menu.ShowMenu(pDevice);
	PreReset(pDevice);

	CreateFont(pDevice);
	PlayerESP(pDevice);
	PlayerAimbot(pDevice);

	pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

	StartHack();
	//		AlteValues();


	if (opt.d3d.cross)
	{
		pDevice->GetViewport(&Tools.g_ViewPort);
		ScreenCenterX = (float)Tools.g_ViewPort.Width / 2;
		ScreenCenterY = (float)Tools.g_ViewPort.Height / 2;
		Tools.FillRGB(ScreenCenterX - 14, ScreenCenterY, 10, 1, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), pDevice);//Left line
		Tools.FillRGB(ScreenCenterX + 5, ScreenCenterY, 10, 1, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), pDevice);//Right line
		Tools.FillRGB(ScreenCenterX, ScreenCenterY - 14, 1, 10, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), pDevice);//Top line
		Tools.FillRGB(ScreenCenterX, ScreenCenterY + 5, 1, 10, D3DXCOLOR(1.0, 0.0, 0.0, 1.0), pDevice);//Bottom line
		Tools.DrawCircle(D3DXVECTOR2(ScreenCenterX, ScreenCenterY), 8, 60, D3DXCOLOR(1.0, 0.0, 0.0, 1.0));//Circle
		Tools.DrawPoint(ScreenCenterX, ScreenCenterY, 1, 1, D3DXCOLOR(0.0, 1.0, 0.0, 1.0), pDevice);//Point
	}
	_asm popad;

	return pEndScene(pDevice);
}
VOID WINAPI DIRECT3D() // hook detected
{
	PDWORD D3DVTable;
	do
	{
		*(DWORD*)&D3DVTable = *(DWORD*)Tools.D3D9VTable();
	} while (!D3DVTable);

	pReset = (oReset)Tools.DetourCreate((PBYTE)D3DVTable[16], (PBYTE)myReset, 5);
	pEndScene = (oEndScene)Tools.DetourCreate((PBYTE)D3DVTable[42], (PBYTE)myEndScene, 5); // specially hooking endscene = detected
}
simple reset/endscene hook will work fine ...
Posts 12 of 2 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Need help?