Release Hook After Maintance

Ntuhhh :



Quote:DWORD WINAPI Func3D(LPVOID lpParam){

    if(LoopEngine==false){
        while(LoadLibraryA("i3GfxDx.dll")==NULL) {Sleep(50);
            }

        DWORD TargetRenderDx = (DWORD) LoadLibraryA (XStr(0x03, 0x0B, 0xFF, 0x96334664, 0x7B407D28, 0x63646500 ).c());
        unsigned long BaseRender = (DWORD) TargetRenderDx + 1757936;
        DWORD ResultRenderPTR =0;
        while(!pGDevice){
                    if(IsBadStringPtrA((LPCSTR)BaseRender,4)==NULL)
                    ResultRenderPTR = *(PDWORD)((DWORD)(BaseRender))+21580+dwEndRet;
                    if(IsBadStringPtrW((LPCWSTR)ResultRenderPTR,4)==NULL){
                    DWORD OldProtect;
                    VirtualAlloc((void*)ResultRenderPTR, 4, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
                    VirtualProtectEx(GetCurrentProcess(),(void*)ResultRenderPTR, 4, PAGE_READWRITE, &OldProtect);
                    memcpy(&pGDevice, (void *)ResultRenderPTR, 4);
                    VirtualProtectEx(GetCurrentProcess(),(void*)ResultRenderPTR, 4, OldProtect, &OldProtect );}}
                    DWORD *g_pDevice = (DWORD*)pGDevice;
                    g_pDevice = (DWORD*)g_pDevice[0];
                        HOOK(EndScene,g_pDevice[42]);
                    while(!pDevice) {
                        pDevice = (LPDIRECT3DDEVICE9)(DWORD*)g_pDevice;
                        UNHOOK(EndScene,g_pDevice[42]);
                        *(PDWORD)&oDrawIndexedPrimitive = g_pDevice[82];
                        *(PDWORD)&oEndScene = g_pDevice[42];
                        MakeJMP((PBYTE)(g_pDevice[1] - 5), (DWORD)(g_pDevice[4] - 5),2);
                        MakeJMP((PBYTE)(g_pDevice[2] - 5), (DWORD)(g_pDevice[5] - 5),2);
                        MakeJMP((PBYTE)(g_pDevice[3] - 5), (DWORD)(g_pDevice[6] - 5),2);
                        MakeJMP((PBYTE)(g_pDevice[4] - 5), (DWORD)HookES,2);
                        MakeJMP((PBYTE)(g_pDevice[5] - 5), (DWORD)HookDIP,2);

                        LoopEngine = true;
                        while(1){
                DWORD EngineHS = (DWORD)LoadLibraryA(XStr(0x03, 0x09, 0x56, 0x333F2B2F, 0x39753831, 0x32000000 ).c()) + 0x14B718;
                EngineBypass*CreateBypass = *(EngineBypass**)EngineHS;
                g_pDevice[42] = (DWORD)g_pDevice[1] - 5;
                g_pDevice[82] = (DWORD)g_pDevice[2] - 5;
                if(memcmp((void *)CreateBypass->BypassES, (void *)CreateBypass->BypassES, 42) == 0 )
                CreateBypass->BypassES = g_pDevice[42];
                if(memcmp((void *)CreateBypass->BypassDIP, (void *)CreateBypass->BypassDIP, 82) == 0 )
                CreateBypass->BypassDIP = g_pDevice[82];
                Sleep(30);
                            }}Sleep(50);}return 0;}


0 Response to "Release Hook After Maintance"

Post a Comment