Acerca de los trucos
Si te gustan los juegos en línea, probablemente hayas oído hablar de los tramposos. La gente tiende a tener una percepción negativa de ellos, y en cierto modo tienen razón. Los tramposos pueden arruinar la experiencia de juego en línea, pero también pueden ser una forma interesante de aprender ingeniería inversa.
Para aquellos que nunca han oído hablar de los tramposos, he aquí un breve resumen. Piensa en shooters en primera persona como Fortnite, Counter-Strike o Valorant. Estos juegos son altamente competitivos, requieren reflejos rápidos y pensamiento estratégico para ser más astuto que otros jugadores y ganar la ronda. Por ejemplo, si estás escondido, esperando a que un oponente doble una esquina para cogerle por sorpresa, tienes un plan. Funciona porque el otro jugador no puede verte detrás del muro. Pero, ¿y si pudiera? Tu plan se frustraría y te matarían antes de que pudieras reaccionar. Básicamente, un truco de juego te permite no sólo ver a través de las paredes, sino también disparar al instante, hacer autodisparos a la cabeza, ganar experiencia extra, encontrar mejor botín y mucho más. Las posibilidades son ilimitadas.
Cómo funciona
Aquí hay un video usando el truco que hice:
Voy a hablar de los trucos ESP, abreviatura de ExtraSensorial Perception (percepción extrasensorial). Como su nombre indica, se trata de un truco que te permite percibir las posiciones de otros jugadores en el mapa, lo que te permite predecir sus movimientos fácilmente. Pero, ¿cómo funciona?
Para jugar, el ordenador debe crear un mundo virtual en el que se coloca cada objeto. Estos objetos se representan en la pantalla siguiendo la geometría euclidiana y los principios de la proyección del mundo en perspectiva. Esto significa que el mundo virtual se comporta como el real, con objetos que aparecen desde el más lejano al más cercano, lo que hace que los objetos distantes tengan más probabilidades de quedar oscurecidos, por ejemplo, por una pared delante de ellos. Cada uno de estos objetos almacena información en la memoria RAM de tu ordenador, conteniendo variables como posición, rotación, textura, animación, color, etc.
En los juegos, cada jugador debe mostrarse en la pantalla en función de su distancia con respecto a la cámara del jugador principal. Para ello, debe haber un conjunto de variables que contengan los datos de los jugadores. Aquí es donde entran en juego los tramposos. El tramposo lee la memoria RAM en busca de los datos de los jugadores, recupera sus posiciones y las muestra en la pantalla, facilitando al usuario el seguimiento de sus movimientos.
Pero eso es sólo un resumen, porque los trucos implican ingeniería inversa, cálculos matemáticos y mucho tiempo. Para recuperar los datos, primero hay que estudiar y analizar manualmente la memoria del juego. Herramientas como Cheat Engine pueden agilizar esta tarea. Debes pensar como el desarrollador del juego y hacer ingeniería inversa de la estructura del juego. Si yo fuera el desarrollador, probablemente organizaría todas las entidades del juego (jugadores, objetos dinámicos, animales, etc.) en una lista para facilitar su recuperación. Dentro de la memoria, una lista consta de todos los datos uno detrás de otro, y si siguen una estructura lógica (por ejemplo, la posición representada por las variables X, Y y Z), resulta más fácil acceder a ellos. También existe una herramienta llamada ReClass.NET que me ayudó mucho con el análisis de la memoria dinámica.
Una vez que hayas organizado los datos para facilitar el acceso, puedes escribir funciones básicas de lectura/escritura de memoria en C++ para realizar la recopilación de datos. Después de eso, puedes proceder a crear la interfaz del tramposo. Yo mantuve la mía simple ya que era para uso personal. Usé DirectX9 para dibujar líneas, texto y menús en una ventana tipo png que se coloca sobre la ventana del juego, como una superposición. Sin embargo, no es tan sencillo. Es necesario tener en cuenta la perspectiva, por lo que primero debe reunir información crucial, como la posición de la cámara, la escala, la relación de aspecto, y la Matriz de Transformación, que, a través de cálculos matemáticos, de la memoria, para que pueda determinar la posición en pantalla de cualquier objeto dentro del mundo 3D.
Con todo esto en su lugar, usted está listo para compilar y lanzar su tramposo para probarlo.
Sé que es más fácil decirlo que hacerlo. Pasé al menos 26 horas intentando entender cómo funciona el motor 3D. Pero al final mereció la pena. Aprendí mucho sobre ingeniería inversa de software, seguridad de Windows y su arquitectura (el ensamblador x86 realmente puso a prueba mis límites).
Cómo utilizarlo
Simplemente ejecútalo, y usa la tecla [Insert] para abrir el menú y configurarlo a tu gusto. Puedes encontrar las versiones compiladas dentro del directorio de compilación, pero si lo prefieres puedes compilarlo tú mismo. Yo he utilizado Visual Studio 2015.
Aquí tienes un enlace al repositorio GitHub del proyecto sln.
¿Formación, servicios de red teaming o escaneado continuo? Le tenemos cubierto. 🚀⚡