void UknownScript(PDWORD target, PDWORD newfunc){
DWORD Jmpto=(DWORD)(newfunc)-(DWORD)target-5;
DWORD a;
VirtualProtect(target, 8, PAGE_EXECUTE_READWRITE, &a);
*(PBYTE)(target)=0xE9;
*(PDWORD)((DWORD)(target)+1)=Jmpto;
VirtualProtect(target, 8, a, &a);
}
//--------------------------------------------------------------------
DWORD WINAPI NNCZHooked(){
DWORD tmp1 = (DWORD)GetModuleHandle("i3GfxDx.dll") + g_pRenderContext;
DWORD tmp2 = 0;
Sleep(1);
while(!NNCZDevice){
if(IsBadReadPtr((PDWORD)tmp1,4)==NULL)tmp2 = *(PDWORD)((DWORD)(tmp1))+ PTR_EndRender;
Sleep(1);
if(IsBadReadPtr((PDWORD)tmp2,4)==NULL){
Sleep(1);
DWORD OldProtect;
VirtualProtect((void*)(tmp2), 4, PAGE_EXECUTE_READWRITE, &OldProtect);
memcpy(&NNCZDevice, (void *)tmp2, 4);
VirtualProtect((void*)(tmp2), 4, OldProtect, NULL);
}
}
Sleep(1);
DWORD *g_i3Device = (DWORD*)NNCZDevice;
g_i3Device = (DWORD*)g_i3Device[0];
while(!i3Device)i3Device = (LPDIRECT3DDEVICE9)(DWORD*)g_i3Device;
*(PDWORD)&oEndScene = g_i3Device[42];
*(PDWORD)&oDrawIndexedPrimitive = g_i3Device[82];
Sleep(1);
UknownScript((PDWORD)(g_i3Device[1] - 5), (PDWORD)(g_i3Device[4] - 5));
Sleep(1);
UknownScript((PDWORD)(g_i3Device[2] - 5), (PDWORD)(g_i3Device[5] - 5));
Sleep(1);
UknownScript((PDWORD)(g_i3Device[3] - 5), (PDWORD)(g_i3Device[6] - 5));
Sleep(1);
UknownScript((PDWORD)(g_i3Device[4] - 5), (PDWORD)NNCZEndScene);
Sleep(1);
UknownScript((PDWORD)(g_i3Device[5] - 5), (PDWORD)NNCZDrawIndexedPrimitive);
Sleep(1);
//Add Bypass Protect Game,Here :)
while(1){
g_i3Device[42] = (DWORD)g_i3Device[1] - 5;
g_i3Device[82] = (DWORD)g_i3Device[2] - 5;
Sleep(1000);
}
return 0;
}
//--------------------------------------------------------------------