Novedades

Guia Detours en C++ para Game Hacking



c0de

Administrador
Desde
19 Abr 2020
Mensajes
329

sddefault.jpg

Detours en C++ para Game Hacking​

Introducción​

En el ámbito del game hacking, una técnica ampliamente utilizada es el uso de detours en C++. Los detours son un método para interceptar y redirigir llamadas a funciones en tiempo de ejecución. Esta técnica permite a los hackers modificar el comportamiento del juego sin alterar su código fuente directamente. En este artículo, exploraremos en detalle qué son los detours, cómo funcionan y proporcionaremos ejemplos prácticos utilizando juegos populares.

¿Qué son los Detours?​

Los detours son una técnica que permite interceptar llamadas a funciones y redirigirlas a una función de reemplazo o "hook". Esto se logra modificando las direcciones de las funciones en la memoria para que apunten a nuestro código personalizado. Esta técnica es especialmente útil en el game hacking para modificar el comportamiento de funciones específicas del juego, como la detección de colisiones, la gestión de recursos o la lógica del juego.

Funcionamiento de los Detours​

El proceso básico de implementación de un detour en C++ implica los siguientes pasos:

  1. Localización de la función objetivo: Identificar la dirección en memoria de la función que queremos interceptar.
  2. Creación del hook: Escribir una función personalizada que reemplazará a la función original.
  3. Modificación de la dirección de la función: Cambiar la dirección de la función original para que apunte a nuestra función personalizada.
  4. Restauración de la función original: En caso de ser necesario, permitir que la ejecución vuelva a la función original después de realizar nuestras modificaciones.

Ejemplo Práctico: Hooking en Assault Cube​

Para ilustrar cómo funcionan los detours en C++, utilizaremos el juego Assault Cube, un juego de disparos en primera persona de código abierto. En este ejemplo, interceptaremos la función encargada de actualizar la munición del jugador para proporcionar munición infinita.

Paso 1: Localización de la Función Objetivo​

Utilizando una herramienta de análisis de memoria como Cheat Engine, localizaremos la dirección de la función que se encarga de disminuir la munición al disparar.

Paso 2: Creación del Hook​

Escribimos una función en C++ que se ejecutará en lugar de la función original. Esta función simplemente ignorará la operación de disminución de munición, proporcionando así munición infinita.

C++:
Por favor, Acceder o Regístrate para ver el contenido de los códigos!

Paso 3: Modificación de la Dirección de la Función​

En el código anterior, utilizamos VirtualProtect para cambiar los permisos de memoria y permitir la escritura en la dirección de la función objetivo. Luego, escribimos un salto (opcode 0xE9) seguido de la dirección relativa de nuestra función hook.

Paso 4: Restauración de la Función Original​

En este ejemplo, no restauramos la función original, ya que queremos que la munición sea infinita indefinidamente. Sin embargo, en otros casos, puede ser necesario permitir que la ejecución vuelva a la función original después de realizar nuestras modificaciones.

Ejemplo Práctico: Hooking en Counter-Strike: Global Offensive (CS)​


Ahora, veamos otro ejemplo utilizando Counter-Strike: Global Offensive (CS). En este caso, implementaremos un detour para modificar la precisión de las armas.

Paso 1: Localización de la Función Objetivo​

Utilizando IDA Pro, localizamos la función responsable de calcular la precisión de las armas.

Paso 2: Creación del Hook​

Escribimos una función en C++ que se ejecutará en lugar de la función original y aumentará la precisión de las armas.

C++:
Por favor, Acceder o Regístrate para ver el contenido de los códigos!

Conclusión​

Los detours en C++ son una técnica poderosa para el game hacking, permitiendo modificar el comportamiento de los juegos en tiempo de ejecución. A través de ejemplos prácticos en juegos como Assault Cube y CS, hemos demostrado cómo implementar hooks para proporcionar munición infinita o aumentar la precisión de las armas.
 
Atrás
Arriba