La Biblia del Hacking de Juegos


Autor: EddyoT&G

Descripción:
Una guía educativa y responsable sobre hacking de videojuegos, ingeniería inversa y modificación de juegos, creada por EddyoT&G. Este libro combina teoría y práctica para enseñar cómo funcionan internamente los juegos, usando ejemplos claros y seguros. Incluye conceptos básicos, ejemplos prácticos, técnicas avanzadas y buenas prácticas.

👉 Síguelo en Instagram: @enriqueot200
👉 YouTube: EddyoT&G


🚀 Introducción

Cada juego guarda datos en la memoria del sistema: vida, dinero, posición, experiencia. Un hacker de juegos localiza estas variables para leerlas o modificarlas.

Ejemplo:
  • Vida = 100
  • Oro = 500
  • Posición = {x: 50, y: 100, z: 0}

Si encontramos la dirección de memoria de la vida, podemos modificarla para que nunca llegue a 0.


⚡ Conceptos Clave: Memoria y Variables

Los juegos almacenan información crítica en memoria RAM:

  • Atributos del jugador: vida, energía, experiencia
  • Recursos económicos: oro, puntos, monedas
  • Posicionamiento espacial: coordenadas x, y, z
  • Estados del juego: nivel actual, inventario

🛠 Herramientas Más Usadas

🔹 Cheat Engine

  • Escanear memoria en tiempo real
  • Buscar valores específicos (enteros, flotantes, cadenas)
  • Modificar valores directamente
  • Crear scripts de automatización

🔹 ReClass.NET

  • Visualización jerárquica de datos
  • Identificación de tipos de variables
  • Reconstrucción de clases y estructuras

🔹 IDA Pro / Ghidra

  • Desensamblar binarios
  • Analizar código estático
  • Generar pseudocódigo
  • Localizar funciones críticas

🤖 Automatización con Scripts

Con bucles en C++ o scripts en Cheat Engine es posible fijar valores automáticamente:


while(true) {
    vida = 9999;
    Sleep(100);
}

🌐 Acceso a Posiciones 3D

En juegos 3D la posición del jugador se guarda en {x, y, z}. Modificando estos valores puedes teletransportarte o analizar movimientos.

  1. Abrir juego offline
  2. Escanear valor de vida
  3. Encontrar dirección en memoria
  4. Mapear estructura en ReClass.NET
  5. Modificar valores con script
  6. Probar cambios en tiempo real

⚖ Ética y Buenas Prácticas

  • ✅ Practicar siempre en juegos offline o open source
  • ✅ Aplicar conocimientos a modding, testing y seguridad informática
  • ❌ Nunca usar hacks en multijugador
  • ❌ No distribuir hacks ni usarlos con fines maliciosos

🖥 Funciones Críticas: ReadProcessMemory y WriteProcessMemory

ReadProcessMemory


BOOL ReadProcessMemory(
  HANDLE  hProcess,
  LPCVOID lpBaseAddress,
  LPVOID  lpBuffer,
  SIZE_T  nSize,
  SIZE_T  *lpNumberOfBytesRead
);

Permite leer memoria de otro proceso, útil para analizar valores sin modificarlos.

WriteProcessMemory


BOOL WriteProcessMemory(
  HANDLE  hProcess,
  LPVOID  lpBaseAddress,
  LPCVOID lpBuffer,
  SIZE_T  nSize,
  SIZE_T  *lpNumberOfBytesWritten
);

Permite modificar memoria de otro proceso (requiere ética y cuidado).


🧩 Técnicas Avanzadas: Multipunteros y Offsets

En sistemas modernos, la memoria es dinámica. Para ubicar datos se usan:

  • Punteros base: direcciones estables
  • Offsets: desplazamientos jerárquicos

BaseAddress = 0xABCD0000
PrimerOffset = 0x20
SegundoOffset = 0x14
DirecciónFinal = *(*(BaseAddress + PrimerOffset) + SegundoOffset)

🔍 Ingeniería Inversa

Ghidra (Análisis Estático)

  • Abrir el ejecutable del juego
  • Buscar funciones clave (ej: UpdateHealth, AddMoney)
  • Analizar pseudocódigo

void UpdateHealth(int newHealth) {  
    player->health = newHealth;  
}

x64dbg (Análisis Dinámico)

  • Adjuntar debugger al proceso
  • Colocar breakpoints
  • Modificar registros en tiempo real

🔒 Técnicas Avanzadas (solo con fines educativos)

  • Bypass de anticheats (teoría): escaneo de memoria, integridad de archivos
  • Manual Mapping: inyección de DLL
  • Hooking limpio: usando MinHook o Detours
  • Packet Sniffing: análisis con Wireshark (solo educativo)

💼 Carreras en Seguridad de Juegos

  • Game Security Engineer
  • Pentester especializado en juegos
  • Desarrollador de anticheats

💡 Ejemplo Práctico: Trainer Básico en C++


#include <windows.h>

int main() {
    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, 1234);
    int newHealth = 9999;
    WriteProcessMemory(hProcess, (LPVOID)0x0456FF12, &newHealth, sizeof(int), 0);
    CloseHandle(hProcess);
    return 0;
}
  1. Usa Cheat Engine para encontrar la dirección de la vida
  2. Implementa el código en C++
  3. Solo úsalo en juegos offline

📌 Conclusión

Este conocimiento debe usarse para:

  • Mejorar tus habilidades en programación
  • Investigar vulnerabilidades de forma ética
  • Crear mods y herramientas legítimas

🔗 Contacto:
YouTube: @EddyoT&G
Instagram: @enriqueot200