CFPRO DIP HOOK UNDETECTED
Code:
static LPDIRECT3DDEVICE9 pDeviceDIP;
DWORD DEVICEGAMEX;
DWORD HookDIPCode;
DWORD retDIP;
void Wall()
{
IDirect3DVertexBuffer9* pStreamData = NULL;
UINT iOffsetInBytes,iStride;
pDeviceDIP->GetStreamSource(0,&pStreamData,&iOffsetInBytes,&iStride);
if ( iStride == 44 || iStride == 40)
{
if(HackWall)
{
pDeviceDIP->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
}
if(SeeGhost)
{
pDeviceDIP->SetRenderState(D3DRS_LIGHTING, false); //d3d lighting off
pDeviceDIP->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255)); //
}
}
}
__declspec( naked ) VOID WINAPI D3D9_DIP( )
{
if(!DEVICEGAMEX)
{
DEVICEGAMEX = FindPattern(0x400000, 0xFFFFFF,(unsigned char*)"\x8B\x35\xFF\xFF\xFF\xFF\x8B\xEE\xE8\xFF\xFF\xFF\xFF\x8B\x45\x00\x8B\x08\x8B\x91\xFF\xFF\xFF\xFF\x57\x6A\xFF\x53","xx????xxx????xxxxxxx????xx?x");
}
pDeviceDIP = *(LPDIRECT3DDEVICE9 *)(*(DWORD *)(*(DWORD *)(DEVICEGAMEX + 2)));
if(pDeviceDIP)
{
__asm call Wall;
}
__asm JMP retDIP;
}
Code:
void WallHook()
{
if(!HookDIPCode)
{
DWORD adr = FindPattern(0x400000, 0xFFFFFF, (PBYTE)"\x8B\x81\xA8\x00\x00\x00\xC3", "xxxxxxx");
for( int i = 0;i<= 0xFFFFFF;i++)
{
if (*(DWORD *)(0x400000 + i) == adr)
{
HookDIPCode = 0x400000 + i;
break;
}
}
}
if(HookDIPCode)
{
if(!retDIP)
{
retDIP = *(DWORD *)HookDIPCode;
}
else
{
*(DWORD *)HookDIPCode = (DWORD)D3D9_DIP;
}
}
}


