Hook by Devata25
Hello MPGH ,
your D3D Menu is DC ? use my own hook ...
that's Free
just compile in your main base
Info :
Hook Type : vTable
Don't Leech ..
just click thank's ^^
Don't Forget MPGH & Me...
Respect :
@Royce
@Dave84311
your D3D Menu is DC ? use my own hook ...
that's Free

just compile in your main base
Info :
Hook Type : vTable
Don't Leech ..

Code:
//================================= Hook by Devata25 ============================================//
LRESULT CALLBACK MsgProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){return DefWindowProc(hwnd, uMsg, wParam, lParam);}
void DX_Init(DWORD* table)
{
WNDCLASSEX wc = {sizeof(WNDCLASSEX),CS_CLASSDC,MsgProc,0L,0L,GetModuleHandle(NULL),NULL,NULL,NULL,NULL,"DX",NULL};
RegisterClassEx(&wc);
HWND hWnd = CreateWindow("DX",NULL,WS_OVERLAPPEDWINDOW,100,100,300,300,GetDesktopWindow(),NULL,wc.hInstance,NULL);
LPDIRECT3D9 pD3D = Direct3DCreate9( D3D_SDK_VERSION );
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
LPDIRECT3DDEVICE9 pd3dDevice;
pD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,hWnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,&d3dpp,&pd3dDevice);
DWORD* pVTable = (DWORD*)pd3dDevice;
pVTable = (DWORD*)pVTable[0];
table[ES] = pVTable[42]; //EndScene address
table[DIP] = pVTable[82]; //DrawIndexedPrimitive address
table[RES] = pVTable[16]; //Reset address
Sleep(218);//
}
/********************************************************************************/
/*
/********************************************************************************/
DWORD WINAPI VirtualMethodTableRepatchingLoopToCounterExtensionRepatching( LPVOID Param )
{
while(1) {
Sleep(100);
HookVTableFunction((PDWORD*)npDevice, (PBYTE)0x4FF505C0,82);
HookVTableFunction((PDWORD*)npDevice, (PBYTE)0x4FF50270,42);
Sleep(97-8-31);//
}
return 1;
}
/********************************************************************************/
// HOOK UNDETEK //- HOOK D3D9
/********************************************************************************/
bool hooked = false;
DWORD WINAPI FelixHook(LPVOID lpParam)
{
if( hooked == false) {
DWORD VTable[3*3*10] = {0};
while(LoadLibraryA("d3d9.dll")==NULL) {
}
DX_Init(VTable);
HOOK(EndScene,VTable[ES]); //Hook EndScene as a device discovery hook
while(!npDevice) {
Sleep(218);//
}
UNHOOK(EndScene, VTable[ES]);
void* d3DIP = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1024);//0x4FF50A4B[82]<~~ header ini mn?? yoda buat z
void* d3ES = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1036);//0x4FF19FEA[42]
{
int i;
for (i = 0 ; i <= 0 ; i++){
DWORD d,ds;
VirtualProtect((void*)(d3ES), 4, PAGE_EXECUTE_READWRITE, &d);
memcpy(d3ES,(void*)(d3ES), 4);
VirtualProtect((void*)(d3ES), 4, d, &ds);
}
}
int C;
for (C = 0 ; C <= 0 ; C++){
{
DWORD d,ds;
VirtualProtect((void*)(d3DIP), 4, PAGE_EXECUTE_READWRITE, &d);
memcpy(d3DIP,(void*)(d3DIP), 4);
VirtualProtect((void*)(d3DIP), 4, d, &ds);
}
}
//------------------//
CreateDetour((DWORD)hkDrawIndexedPrimitive, (DWORD)d3DIP*C,Detour_Type_0xB8,7);
CreateDetour((DWORD)hkEndScene, (DWORD)d3ES*C,Detour_Type_0xB8,7);
*(PDWORD)&oDrawIndexedPrimitive = VTable[DIP];
*(PDWORD)&oEndScene = VTable[ES];
//-----------------//
hooked = true;
DxInit = true; // ESP
}
Sleep(10);
void* d3DIP = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1024);//0x4FF505B0[82]
void* d3ES = (void*)(dwD3D9 + (DWORD) + (DWORD) + (DWORD) + (PDWORD)BaseD3D + 1036);//0x4FF50260[42]
{
DWORD Dark,ds;
VirtualProtect((void*)(d3ES), 4, PAGE_EXECUTE_READWRITE, &Dark);
memcpy((void*)d3ES, (const void*)d3ES, 4);
VirtualProtect((void*)(d3ES), 4, Dark, &ds);
Sleep(97-8-31);//
}
int i;
for (i = 0 ; i <= 15 ; i++){
{
DWORD d,ds;
VirtualProtect((void*)(d3DIP), 4, PAGE_EXECUTE_READWRITE, &d);
memcpy((void*)d3DIP, (const void*)d3DIP, 4);
VirtualProtect((void*)(d3DIP), 4, d, &ds);
Sleep(97-8-31);//
}
}
for (i = 0 ; i <= 15 ; i++){
if(memcmp((void *)d3DIP, (void *)d3DIP, 82) == 0 ) // Protect Hook Draw Indexed Primitive
HookVTableFunction((LPDWORD*)npDevice, (PBYTE)d3DIP, 82);
Sleep(97-8-31);//
}
for (i = 0 ; i <= 15 ; i++){
if(memcmp((void *)d3ES, (void *)d3ES, 42) == 0 ) // Protect Hook End Scene
HookVTableFunction((LPDWORD*)npDevice, (PBYTE)d3ES, 42);
Sleep(97-8-31);//
}
{
Sleep(100*2);
}
return 0;
}
Don't Forget MPGH & Me...
Respect :
@Royce
@Dave84311

