Las compañías detrás de los videojuegos suelen estar en la carrera eterna contra los productores tanto de cracks como de cheats. Por ejemplo, en enero de 2023 Activision ganó una demanda contra EngineOwning, un conocido proveedor de cheats para juegos como Call of Duty. El tribunal ordenó a EngineOwning pagar una compensación millonaria por daños, sentando un precedente al menos interesante.

Ya hemos abordado casos de este tipo de archivos que distribuían códigos maliciosos y el riesgo que representan. Sin embargo, y más allá de la moralidad de su uso, ¿alguna vez te preguntaste por qué un software antivirus o antimalware los detecta como maliciosos?

ejemplo-dowloader.
Imagen: Un aimbot en funcionamiento. Fuente: Medium

¿Cómo funcionan?

Para poder responder esta pregunta, comencemos con el cómo. En esto es necesario profundizar en dos conceptos clave: la modificación de archivos y la inyección de código en la memoria.

Cuando hablamos de cracks, lo más común es que estos programas alteren archivos específicos del juego o del software que se desea crackear. Estos archivos suelen ser ejecutables (.exe en Windows) o librerías dinámicas (.dll en Windows, .so en Linux). Estas son las piezas del software que contienen las instrucciones que el sistema operativo ejecuta para hacer funcionar el juego.

Por ejemplo, un crack podría modificar el archivo ejecutable principal del juego y eliminar la verificación de la licencia al identificar y alterar las secciones del código que comprueban si el usuario ha ingresado una clave válida o si el juego se está ejecutando en un entorno de prueba. El crack reescribe estas secciones del código para que siempre devuelvan un resultado positivo, incluso si no se ha comprado el juego o no se ha ingresado la clave correcta.

En el caso de los cheats, estos pueden modificar archivos de configuración, archivos que contienen datos del juego (como tablas de estadísticas), o incluso introducir nuevos archivos en el sistema del juego. Un cheat podría, por ejemplo, modificar un archivo que controla las estadísticas de los personajes para otorgar al jugador salud infinita o munición ilimitada.

Otra técnica, pero más avanzada, es la inyección de código en la memoria. Cuando un programa es ejecutado, ya sea un videojuego, un navegador web o cualquier otro tipo de software, el sistema operativo lo carga en la memoria principal para acceder a las instrucciones y datos del programa rápidamente, para que el programa funcione de manera eficiente y sin demoras. Más aún, este (y todo) programa puede modificar sus propios datos durante la ejecución.

Cuando un juego se está ejecutando, partes del código del juego y los datos relacionados (como la posición del jugador, la salud, etc.) residen en la memoria. Los cheats que inyectan código en la memoria modifican estos datos en tiempo real. Por ejemplo, puede buscar en la memoria del juego el valor que representa la cantidad de munición que tiene el jugador y, una vez localizado, sobrescribe este valor con un número mayor, dándole al jugador munición infinita.

ejemplo-dowloader.
Imagen: Desensamblado del juego Solitario en un programa para inyección de memoria publicado en un sitio web de recopilación.

La inyección de código también puede implicar la inserción de nuevas instrucciones en el flujo de ejecución del juego. Esto se logra utilizando técnicas como hooking, donde el cheat intercepta las funciones del juego y las redirige a su propio código. De esta manera, cuando el juego intenta ejecutar una función, en realidad está ejecutando código que altera su comportamiento.

¿Por qué un antimalware detecta cracks o cheats como maliciosos?

Entendiendo el funcionamiento de este tipo de archivos, podemos profundizar en por qué un software de protección los detectaría como códigos maliciosos sin importar si realiza o no acciones dañinas.

Tanto la modificación de archivos críticos como la inyección de código en la memoria son técnicas que pueden ser utilizadas tanto por software legítimo como por malware. Sin embargo, debido a su potencial para causar daño, estas técnicas suelen ser tratadas con sospecha por los programas antimalware.

Cuando un crack o un cheat modifica archivos ejecutables o librerías dinámicas, está alterando directamente el código que el software original usa para funcionar. Este comportamiento es muy similar a una técnica maliciosa, en donde ciertos tipos de malware modifican archivos ejecutables benignos para insertar su propio código. Así, cada vez que el archivo se ejecuta, acciones maliciosas lo hacen con este.

Además, los cracks y cheats suelen necesitar modificar verificaciones de seguridad puestas por el mismo juego para evitar alteraciones. Ya sea una firma digital o una protección de licencia, un software de protección podría interpretar ese “envenenamiento” como producto de una acción maliciosa.

En cuanto a la inyección de código en memoria, existen varios focos que alarman a un software de seguridad.

En primer lugar, amenazas como los troyanos y rootkits a menudo inyectan su propio código en la memoria de otros procesos para ocultarse y tomar control del sistema. Esto les permite operar en segundo plano sin ser detectados. Dado que los cheats y algunos cracks también inyectan código en la memoria para modificar el comportamiento del juego, los antimalware pueden detectar este comportamiento como indicativo de una amenaza.

Además, la técnica de “hooking” es común en exploits y malware avanzado que intentan interceptar y manipular datos sensibles. Por lo tanto, cualquier intento de inyección de código que altere el flujo de ejecución es visto con sospecha.

Por último, muchos programas antimalware incluyen técnicas de protección contra exploits (como la randomización de los espacios de memoria disponibles para los programas, o ASLR), que están diseñadas para prevenir la inyección de código en la memoria. Si un cheat intenta inyectar código y activar comportamientos que estos mecanismos están diseñados para prevenir, el antimalware lo detectará y bloqueará, identificándolo como una amenaza potencial.

Malware escondido

Ahora, ¿qué sucede cuando el desarrollador de estos programas tiene intenciones maliciosas? En una publicación anterior, vimos campañas maliciosas que utilizaban cracks como cortina de humo.

Un desarrollador malicioso puede ocultar malware dentro de un crack o cheat de manera astuta, aprovechando la confianza del usuario en la funcionalidad aparente del software. Aunque cumpla con su objetivo principal, como desbloquear características de un juego o proporcionar ventajas ilegales, puede llevar consigo un código oculto diseñado para causar daño.

Una de las formas más comunes es mediante la inyección de código malicioso. El crack, al ejecutarse, puede insertar este código en el proceso del juego o en el sistema operativo, permitiendo al malware realizar acciones como la instalación de backdoors, registrar las pulsaciones del teclado o robar archivos sensibles.

Además, los desarrolladores maliciosos pueden emplear técnicas avanzadas de evasión, ocultando el malware en capas de cifrado que se descifran únicamente en la memoria durante la ejecución del crack. También es posible que el malware modifique archivos críticos del sistema o del juego, estableciendo su persistencia incluso si el juego es desinstalado.

Esta combinación de técnicas hace que el malware incrustado en un crack o cheat sea especialmente peligroso, ya que el usuario puede estar disfrutando de las ventajas que el software proporciona, mientras en segundo plano su sistema es comprometido de maneras que pueden tener consecuencias graves y duraderas

Conclusiones

Más allá de violar las políticas de uso de los videojuegos, los cracks y cheats también representan un grave riesgo de seguridad para los usuarios, por las funciones que realizan. Detrás de la promesa de desbloquear contenido o ventajas, podrían ocultarse programas maliciosos diseñados para comprometer el sistema, robar datos sensibles o instalar más software dañino. La sofisticación de estas amenazas, junto con su capacidad para evadir detección, subraya la importancia de evitar el uso de software no autorizado y confiar únicamente en fuentes legítimas y seguras.