🎮 Menú de Trampas Visual con OpenGL en C++ (MinHook)

 


Este proyecto implementa un menú visual interactivo de trampas (cheats) para videojuegos basados en DirectX u OpenGL, programado en C++, utilizando OpenGL para renderizar el menú en pantalla y MinHook para interceptar funciones críticas del juego como wglSwapBuffers.

Se distribuye como una DLL inyectable, permitiendo mostrar un overlay dentro del juego sin alterar archivos internos, ideal para pruebas de memoria, diseño de trampas personalizadas o como base educativa para desarrolladores.


🛠️ Características Principales

✅ Menú Visual Interactivo (Overlay)

  • Dibujado directamente sobre la pantalla usando OpenGL.

  • Diseño minimalista, con fondo transparente (sin cuadros opacos).

  • Opciones en color verde, con la opción seleccionada claramente resaltada.

  • Bordes del menú en amarillo para una mejor visibilidad.

  • Watermark discreto en una esquina indicando la tecla INSERT.


🎯 Trampas Incluidas

Cada trampa puede activarse o desactivarse desde el menú usando el teclado:

  • 🩸 Vida infinita: Fuerza la salud a 9999.

  • 🔫 Munición infinita: Establece la munición en 999.

  • Super velocidad: Duplica la velocidad del personaje.

  • 🔄 Sin recarga: Omite la animación/lógica de recarga mediante un flag booleano.


🎮 Controles del Menú

  • INSERT: Mostrar u ocultar el menú.

  • ↑ / ↓: Navegar por las opciones.

  • ENTER: Activar o desactivar la opción seleccionada.


⚙️ Tecnologías Utilizadas

  • Lenguaje: C++

  • Renderizado: OpenGL (gl.h)

  • Hooking: MinHook (ligero y eficiente)

  • Texto: wglUseFontBitmaps para renderizado textual básico

  • Inyección: Cargado como DLL (compatible con Extreme Injector, Xenos, etc.)


🔐 Estabilidad y Seguridad

  • El menú no modifica archivos del juego.

  • Utiliza acceso dinámico a memoria mediante PointerChain (punteros con offsets).

  • Protección contra punteros nulos, previniendo cierres del juego.

  • Hook no interfiere con el pipeline original del juego (intercepta wglSwapBuffers de forma segura).


📁 Estructura del Código

  • Main.cpp: Lógica principal (hook, menú, input, cheats).

  • MinHook: Biblioteca externa para instalar hooks sin conflictos.

  • Funciones auxiliares como:

    • DrawText y DrawBox: Renderizado gráfico del menú.

    • ResolvePointerChain: Obtiene direcciones reales de memoria mediante offsets.


🧠 Requisitos del Proyecto

  • Visual Studio 2019 o superior.

  • opengl32.lib (incluido por defecto en Windows SDK).

  • Arquitectura: x86 o x64 según el juego.

  • Biblioteca MinHook correctamente incluida y compilada.


🚀 ¿Cómo Usarlo?

  1. Compila el proyecto como DLL desde Visual Studio.

  2. Inyéctalo en el juego usando tu inyector preferido (Extreme Injector, Xenos, etc.).

  3. Presiona INSERT para mostrar el menú.

  4. Activa las trampas deseadas con ENTER.


📝 Notas Finales

Este proyecto es ideal para desarrolladores interesados en:

  • Crear su propio menú de trampas personalizado.

  • Aprender sobre hooking, renderizado overlay con OpenGL y manipulación de memoria.

  • Ampliar la base del proyecto con nuevas trampas, compatibilidad con ImGui o soporte para DirectX.

⚠️ Uso responsable: Este proyecto tiene fines educativos. Su mal uso puede violar términos de servicio de los juegos.