На нашем форуме вы можете получить приватный чит для игры Euro Truck Simulator 2. Подробности по ссылке ниже:
Тема с читом на Euro Truck Simulator 2
Авторизация  
karlgalagger

c++ OpenGL hook крашит LWJGL игру (хук wglSwapBuffers)

Рекомендуемые сообщения

Уже как неделю я пытаюсь сделать хук wglSwapBuffers в игре написанной на java + opengl(LWJGL ). 

Сам хук сделать у меня выходит но когда я возвращаю что-то функции - игра вылетает, а без этого окно ломается .

Если я не правильно сформулировал тему, извиняюсь.

Код приложил, что я делаю не так ума не приложу. Жду помощи.

Спойлер

typedef int (__stdcall* SwapBufferType)(HDC);
    SwapBufferType origSwapBuffer = NULL;

    int __stdcall Hooked_wglSwapBuffers(HDC h)
    {
        return (*origSwapBuffer)(h);//Это крашит игру.
    }



    void *DetourFunc( BYTE *src, const BYTE *dst, const int len )
    {
    BYTE *jmp = (BYTE*)malloc( len + 5 );
    DWORD dwback;
    VirtualProtect( src, len, PAGE_READWRITE, &dwback );
    memcpy( jmp, src, len );
    jmp += len;
    jmp[0] = 0xE9;
    *(DWORD*)( jmp + 1 ) = (DWORD)( src + len - jmp ) - 5;
    src[0] = 0xE9;
    *(DWORD*)( src + 1 ) = (DWORD)( dst - src ) - 5;
    VirtualProtect( src, len, dwback, &dwback );
    return ( jmp - len );
    }

    void HookOpenGL(){
        HMODULE openGLModule = GetModuleHandle(L"opengl32.dll");
        origSwapBuffer = (SwapBufferType)DetourFunc((LPBYTE)GetProcAddress(openGLModule, "wglSwapBuffers"), (LPBYTE)&Hooked_wglSwapBuffers, 5);
    }

 

 

Изменено пользователем Xipho
Код нужно оборачивать специальным тегом, и спойлером, если длина кода больше 10 строк. Это все прописано в правилах. На первый раз устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотри под отладчиком, что происходит в момент выполнения, так проще будет диагностировать проблему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В данном топике никто не постил уже 4 месяца. Пости здесь только если твой вопрос точно совпадает с темой данного топика.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр
Авторизация