El marcador de ayuda lee el estado directamente de la memoria

[StaticChanger] construyó un marcador para mostrar las estadísticas mortales de su Hall para la computadora. Sí, hemos visto asesinos antes, pero nos gusta la forma en que recopila los datos. Este proyecto lee la partitura directamente desde una dirección de memoria.

Usando un programa llamado Cheat Engine, uno puede oler la memoria utilizada por un programa. Después de algunas pasadas, el programa lo ayudará a encontrar una dirección de memoria estática para los datos deseados. Una vez que tenga eso, solo es cuestión de usar un puntero a esa dirección en el lenguaje de programación que desee. En este caso, un programa C # investiga el valor y le indica a Arduino que muestre el valor en algunas pantallas de 7 segmentos. Voila, el número aparece junto a su pantalla como se ve en la imagen de arriba.

  • Ploogle dice:

    Veo que esto no funciona bien con los juegos de Steam. Apuesto a que levantará todo tipo de banderas con tu cuenta si detecta algo como "Cheat Engine" corriendo junto con tu juego multijugador ...

  • Miguel dice:

    Un proyecto interesante. Pregunto algunas cosas:

    1. ¿Con qué frecuencia cambian las ubicaciones de la memoria? En los juegos más nuevos, creo que esto sucede con más frecuencia para evitar las trampas.

    1a. Hall es un puerto de consola. ¿Significa eso que sus ubicaciones de memoria son, por naturaleza, más estáticas?

    2. También acerca de las trampas, ¿algún recurso anti-trampas notaría que está ejecutando un programa que busca direcciones específicas? Realmente no sé qué tan profundamente el software anti-trampas controla tales cosas.

    3. ¿Qué sucede cuando no juegas Hall? ¿Segmentos aleatorios iluminados cuando los datos aleatorios pasan a través de esa ubicación de memoria?

  • Miguel dice:

    Ploogle: Según entendí el artículo, operó Cheat Engine solo para OBTENER la dirección, y luego usó su propio programa para LEER la dirección.

    Aunque yo también tenía curiosidad. Sería bastante arriesgado ejecutar un Cheat Engine mientras se ejecuta un juego de Valve, arriesgándose a una prohibición.

  • Ploogle dice:

    La forma más fácil sería que Steamworks expandiera la API para permitir que los usuarios de computadoras de escritorio recopilen información del juego (puntajes, etc.) proporcionada por los inventores del juego.

  • Franklyn dice:

    Entonces, ¿tiene que ejecutar un motor de engaño cada vez?

  • Cuchara-tenedor dice:

    Si puedo agregar mis $ 0.02,
    1) Cheat Engine es solo un programa de búsqueda / comparación de memoria, no es necesario, es solo lo que usó. Escribí la mía propia mientras estaba en la universidad.
    2) Las ubicaciones de memoria dinámica responden fácilmente. Por lo general, hay un puntero en un desplazamiento específico en sí mismo estático que contiene la dirección del valor que está tratando de encontrar. En lugar de leer directamente desde una dirección dinámica, lee una dirección del puntero y luego lee el valor de esa dirección.
    3) Al leer la memoria, SIEMPRE está usando un identificador de ventana o una dirección de proceso. Si sus estadísticas no están disponibles, tiene algunas opciones. Puede establecer valores NULL, puede congelar los últimos valores conocidos o puede establecer un estado de error.

    @Ploogle,
    No creo que los programas de juegos implementen algo así por razones de seguridad.

  • Danukeru dice:

    @Ploogle
    En servidores privados que utilizan Metamod Source, puede recopilar fácilmente estas estadísticas. MMS se encuentra entre el motor de origen y la lógica específica del juego, y te permite conectar llamadas de mesa virtuales para acceder a los servidores.

  • Danukeru dice:

    @Cuchara-tenedor
    Supongo que solo usa Cheat Engine para obtener la dirección y luego llama a ReadProcessMemory () en su aplicación codificada en C # más tarde.

  • nimrod dice:

    ese tema es barato. Ni siquiera puedo ver un punto en ese proyecto. donde esta el reto

  • Cuchara-tenedor dice:

    @Danukeru
    Simplemente la idea correcta. Aunque no uso Cheat Engine o C #.
    Básicamente, Cheat Engine es un método más fácil que usar un depurador y descubrir lo que realmente está sucediendo en el código. Lo que hace la aplicación es descartar el proceso de RAM en un archivo para que pueda buscar un valor, luego repetir y ver qué valores cambian para obtener una dirección específica. Una vez que tenga una dirección dinámica, busque el puntero estático y haga algo como:
    ReadProcessMemory(ReadProcessMemory(Pointer));

    Donde el primer RPM es obtener la dirección dinámica (byte) y el segundo es obtener los valores reales. Por lo general, solo necesita uno de los valores (por ejemplo, muertes) y luego extrapolar dónde se basan los otros valores en las estructuras utilizadas en el código. En mi experiencia, los asesinatos y las muertes suelen estar separados por un byte.

    @nimrodo
    No creo que se suponga que sea un desafío. Tenga en cuenta que puede haber sido una gran experiencia de aprendizaje o incluso un programa divertido. tener cuando el autor haya terminado.

  • M72 dice:

    Así que sí, todos los pequeños grupos de módulos de juegos y hackers han estado haciendo lo mismo desde principios de los 90 al menos.

    Realmente no veo cómo esto es desafiante o interesante. Pero bueno, supongo que otro artículo sobre esto no acabará con el mundo como lo conocemos.

  • Zencyde dice:

    Oh, inteligente. Descubrí que siempre es fácil aislar los valores / valores correctos después de algunos pasos de valores separados. ArtMoney utiliza este procedimiento para reducir el valor y luego bloquear uno nuevo. Aprecio la simplicidad de leer desde RAM. 🙂

  • edward.81 dice:

    Mumble (habla un equipo similar) lee una dirección de memoria de juegos (como tf2) para obtener un bolsillo de sonido 3D. Así que no hay prohibición de vacantes si solo lees.

  • Jugo de corte dice:

    "La forma más sencilla sería que Steamworks expandiera la API para permitir que los usuarios de computadoras de escritorio recopilaran información del juego (puntajes, etc.) proporcionada por los inventores del juego".

    Esto requiere que Steamworks realmente implemente una API para CADA valor que le interese para que no funcione.

  • mugir dice:

    Cheat Engine es similar a MHS, ambos te permiten encontrar los punteros, ambos están diseñados para que puedas editar heladas, valores, muestras, municiones, etc. Lucky es una forma fácil de hacer entrenadores para cualquier juego.

  • inquilino dice:

    Alguien tiene que escribir un programa que le permita ingresar un código de dirección de motor engañoso y cambiarlo a su gusto.

  • Frogz dice:

    .... regreso ...
    se llama motor señuelo ...
    o tsearch
    o cualquier otro editor de memoria
    Ese es el objetivo de ellos

  • Cuchara-tenedor dice:

    @inquilino
    Puede hacer uno en unos 5 minutos con un visual básico.
    Simplemente cree un cuadro de entrada y haga lo siguiente cuando presione un botón.
    WriteProcessMemory procHandle, *myAddress, *myData , length, *error

    Donde un error es el número de bytes escritos, si es cero, realmente tiene un error.

  • Cuchara-tenedor dice:

    Tenga en cuenta que VB no es mi idioma elegido.

    @Frogz
    Te estás perdiendo que tsearch, CE (Cheat), monarch, MHS (Memory Hacking Software) son todos "detectados" por el software anti-hacking. Entonces, si escribe el suyo, o alguien le escribe un programa para simplemente escribir en la memoria, puede hacer trampa en los juegos multijugador.

  • Danukeru dice:

    @Cuchara-tenedor
    Si limita los privilegios del programa anti-trampas y ejecuta Cheat Engine con una configuración de privilegios más alta, o con el software en programas como un proceso secundario, puede prevenir eficazmente el programa anti-trampas de todos modos.

    También en Windows con desvíos puede vincular sus llamadas al sistema cuando quieran leer la lista de procesos en ejecución actual, por ejemplo, de Cheat Engine ... proporcione lo que quiere leer.

    Nuevamente, solo tengo consejos de expertos sobre Warden en WoW.

  • cde dice:

    ¿La mayoría de los sistemas de detección no buscan modificaciones de memoria basadas en sumas de comprobación no válidas y espacios de memoria duplicados?

    Es decir, no cambie los valores, ¿y no importa?

  • Que no dice:

    Valve en realidad se mueve constantemente en la dirección opuesta de ayudar con cosas como mostrar puntajes e información, haciendo que más y más cosas se bloqueen e inaccesibles a mis experiencias, supongo que como reacción a su desesperación experimentada mientras luchan contra los tramposos, pero es una pena que no lo hagan ' Entiendo que hay personas que tampoco son cojas, pero a las que les gusta tejer sin hacer trampa.

  • Cuchara-tenedor dice:

    @Danukeru
    Esto es cierto en algunos casos, como aparentemente WoW, pero hay excepciones.

    Por ejemplo, algunos requieren que tenga privilegios administrativos para ejecutarse. (es decir, los juegos que tienen una actualización integrada en el juego principal requieren que un administrador reemplace los archivos)

    Luego, tiene un Micro $ oft increíble que facilita ver qué procesos se están ejecutando y sus ventanas, independientemente de los privilegios del usuario.

    @cde
    Sí, se denominan controles prudentes, pero los desarrolladores de juegos por lo general ni siquiera quieren que leas y mates tu programa si incluso accede al espacio de memoria de su programa.

  • aimbotwriter dice:

    @Cuchara-tenedor

    hay un bypass para todo. Ejecuta el juego en una máquina virtual, lee los valores de una máquina virtual y ¡listo! acceso gratuito a su juego de memoria sin que él lo sepa. Trabajé en un aimbot fuente anti-strike durante un tiempo que funcionó de esa manera. nunca ha sido prohibido porque la votación con el mouse y las entradas de teclas la realiza el sistema operativo, no el juego. Sin embargo, nunca comenzó realmente, a nadie le gustó tener que instalar vmplayer para usarlo.

  • Hundido dice:

    @Kio ne

    Libertad versus seguridad. Es casi lo mismo que la sociedad. Claro, la libertad es buena, pero siempre hay diques que la arruinan para todos los demás, validando la necesidad de tener prioridad sobre la seguridad.

  • StaticChanger dice:

    Solo para aclarar, CheatEngine (o artmoney) se usa solo en el proceso de desarrollo, no cuando se está ejecutando el juego real. El programa solo lee de la memoria, no escribe, por lo que no se toma como una trampa (a menos que, por supuesto, también lo modifiques). El problema con la escritura de memoria como trampa es que la mayoría de los juegos alojan toda la información en el servidor, por lo que, aunque pueda parecer tu exploit, solo aparece de esa manera porque la información nunca se envía a otros clientes. Después de todo, esto no debería usarse en juegos. ¿Qué otra información podría ser útil cuando se extrae de un programa?

  • Cuchara-tenedor dice:

    @aimbotwriter
    Tiene razón, pero cosas como si detectan máquinas virtuales. Creo que la mejor forma de atacar la protección del juego es a través de la oscuridad.

  • mikaelo dice:

    Es bastante trivial hacer esto con Source (y tal vez Halo también). Muchos servidores hablan del protocolo de consulta de GameSpy, que es una forma "estándar" de recopilar este tipo de información.

Fernando Román
Fernando Román

Deja una respuesta

Tu dirección de correo electrónico no será publicada.