[Game-Hacking] Cheat-Egnine: hackeando el buscaminas

Iniciado por kiriost, 27 Mayo 2011, 01:05 AM

0 Miembros y 1 Visitante están viendo este tema.

kiriost

Este es el primer tutorial. En este explicaremos como editar un valor en memoria de un juego, en este caso, el buscaminas de Windows. Okey, comencemos! Programas que utilizaremos:
·Cheat Engine que lo pueden descargar desde aquí.
·Buscaminas (winmine.exe) de Windows. Viene por defecto con Windows.

Cheat Engine

Es una aplicación programada en Delphi, muy útil, que permite la edición de un valor de la memoria de un programa que se está ejecutando. Por ejemplo, estamos jugando Counter-Strike(espero que todos lo conozcan) y nos quedamos sin balas, con esta maravilla podemos editar el valor de una dirección de memoria. Como algunos sabrán, el número de balas que tenemos es un valor, y este valor se guarda en la memoria, concretamente en una dirección de memoria, donde el programa puede acceder a la misma para leer o escribir dicho valor. Con Cheat Engine podemos acceder desde afuera para cambiar el valor de esta dirección de memoria. Entendido??

Comenzando:

Intentaremos congelar el tiempo en el Buscaminas de Windows...
1- Primero exploraremos el buscaminas. Vamos a Inicio>Todos los programas>Juegos>Buscaminas, o sea, ejecutaremos el Buscaminas. Ahora que tenemos el Buscaminas corriendo en nuestra PC podemos ver que al empezar a jugar el tiempo empieza a correr. La pregunta es...Donde se guarda el tiempo que va transcurriendo? La respuesta es...Es un valor, por lo tanto, en una dirección de memoria.
Lo que haremos será acceder a esta dirección con el Cheat Engine y cambiar o congelar el valor!!! No te asustes, es muy sencilo.
2- Instalamos el Cheat Engine. Luego lo ejecutamos y vemos un cartel que habla acerca de un tutorial, hacemos un click en "No". El programa se ve así:

3- Ahora sí, a jugar con esos valores!!!! xD.
Cerramos el buscaminas y el Cheat Engine que habíamos abierto anteriormente.

Editandonos dentro del juego:

Ahora volvemos a ejecutar el Buscaminas, pero no comenzamos a jugar. Ejecutamos el Cheat Engine. Ahora lo que vamos a hacer es abrir el proceso del Buscaminas que ya se está ejecutando, desde el Cheat Engine. Asi que vamos a hacer click en el icono de la computadora que aparece en verde.

Nos aparecera la lista de todos los procesos que se estan ejecutando en nuestra Pc ("Process List"). Bajamos la barra hasta abajo hasta encontrar el proceso winmine.exe ,o sea, es el Buscaminas que se esta corriendo. Y le damos a "Open" (abriremos el procesos dentro del Cheat Engine).

Ahora ya podemos ver en la parte superior del programa que hemos abierto el proceso winmine.exe (Buscaminas) desde el CH (abreviacioón que comenzare a utilizar de ahora en adelante para el Cheat Engine xD). Ahora viene lo mas dificil (no tanto :D), tendremos que buscar la dirección de memoria en donde se almacena el valor del tiempo del Buscaminas para editarlo o congelarlo. Volvemos al Buscaminas que tenemos abierto y vemos que todavia no hemos empezado a jugar, por lo tanto, el valor del tiempo es igual a 0. Entonces donde vemos que dice "Value:" (marcado con rojo en la sgte. imagen) hay un cuadro de texto, ahi escribimos 0, es decir, el valor que tiene el tiempo en el juego actualmente. Y luego le damos a "First Scan" (primer escaneo) y CH buscara en el juego todas las direcciones de memoria que contengan el valor 0 (cero).

Pero..Cual de todas esas direcciones de memoria es la del tiempo??? Bueno..calma, buscar una direccion no es nada facil. Sigamos.
Tenemos demasiadas direcciones. Lo que vamos a hacer es empezar a jugar al Buscaminas, es decir, haremos click en uno de los cuadrados para empezar a buscar minas xD. Listo, ahora el tiempo ha empezado a correr, y obviamente alguna de esas direcciones que tenemos ha empezado a correr al igual que el tiempo en el juego. Lo que ahora haremos sera buscar esa direccion a traves de su valor como lo hicimos anteriormente, entonces, donde dice "Value:" hay un cuadro de texto (donde ingresamos anteriormente el 0), alli vamos a colocar el valor del tiempo actual en el Buscaminas, para esto vamos a ver cuanto lleva el tiempo del juego e ingresaremos un numero mas adelantado para esperar que el tiempo llegue a ese valor y pulsaremos rapidamente "Next Scan" (siguiente escaneo).
Por ej.: El tiempo en el juego va por 25 segundos, lo que haremos en CH es colocar 30 en el casillero y esperaremos a que el tiempo del juego llegue a 30 segundo y cuando lo haga rapidamente presionaremos "Next Scan".

Lo que hace esto es buscar el valor 30 dentro de todas las direcciones que aparecieron cuando colocamos el 0 para comenzar a escanear. Primero el tiempo estaba detenido, en 0, buscamos ese valor con "First Scan", nos aparecieron miles de direcciones con ese valor, entre ellas estaba la del tiempo. Luego para despejar las demas empezamos a correr el juego y el tiempo comenzo a correr tambien y colocamos el valor 30 para ser escaneado entre todas esas direcciones que anteriormente nos aparecieron y esperamos que el tiempo en el juego llegue a 30. Le dimos a "Next Scan", lo que hace esto es buscar un valor entre todas las direcciones de memoria que nos aparecieron antes. Y alli despejamos las demas direcciones y nos quedo solo una, la del tiempo, con su respectivo valor.

Encontramos la dirección de memoria del tiempo con su valor!! Lo logramos, ahora solo nos queda jugar con ella. Es decir, podemos cambiarle su valor o congelarla en el valor actual y no seguira corriendo el tiempo. En el caso del Counter-Strike, podriamos congelar el numero de balas y asi nunca se nos acabarian :D.
Hacemos doble click en la direccion de memoria que contiene el valor del tiempo y abajo nos aparecera la misma. Y si hacemos doble click donde dice "Value" (marcado con amarillo en la imagen anterior) podremos cambiar su valor, el valor de tiempo, poner el tiempo que queramos. O congelar el valor haciendo click en el cuadradito que aparece debajo de "Frozen"....
Como veran es algo muy facil!!!
Perdonen el extenso tutorial, pero quiera que entiendan cada punto, lo que es una direccion de memoria, los valores, étc.
P.D.: El Cheat Engine se puede utilizar para una gran (por no decir inmenza) cantidad de juegos, cambiando valores en el juego...Ojo! Algunos valores corresponden a la luminosidad del juegos, la transparencia de las paredes, etc. Podraan hasta crear un cheat para ver a traves de las paredes en el Counter-Strike, o agregarse vida.
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más

[-Franko-]

Hola tu tuto esta bien para comenzar!

CitarLuego lo ejecutamos y vemos un cartel que habla acerca de un tutorial, hacemos un click en "No".
Creo que el tuto del CE es bastante pues explica bastantes pautas de escaneo. Lo que si es necesario un pequeño nivel previo son el programa y ingles para enterder y poder realizar todas las pruevas que proponen, con la teoria que te proporcionan.

CitarPodran hasta crear un cheat para ver a traves de las paredes en el Counter-Strike
No savia que el Cheat Engine hiciera esas cosas  :P
Lo dificil seria encontrar el valor de la pared no???

CitarAlgunos valores corresponden a la luminosidad del juegos, la transparencia de las paredes, etc.
Como podria encontrar esos valores en el juego??

Saludos

Edu

Si congelo las balas en el counter strike, y luego juego en red con mis amigos, sufre efecto? solo he podido hacer que yo ande mas rapido, los mato con el cuchillo jajaj

Delacure Mihawk

#3
Cita de: [-Franko-] en  2 Junio 2011, 02:46 AM
Lo dificil seria encontrar el valor de la pared no???
Como podria encontrar esos valores en el juego??


Cuando hacia el "hack" del botsAcclaim siempre me preguntaba como coj*** hacían para teletransportar a los enemigos, analizando un poco te das cuenta que simplemente cambian las coordenadas donde tendrían que aparecer los enemigos, así aparecían sobre el mar y morían  :xD Pero nunca conseguir dar con esos valores para hacer mi propio hack  :-\

PD: también es divertido ponerte balas infinitas en el modo zombies del CoD y pasar del level 1 al 300, no paran de venir zombies con la resistencia del nivel 2, con la ametralladora y esto haces una buena matanza, estuve 30 min en el nivel 300 y no terminava xDD

kiriost

Lo divertido es divertires con los videojuegos, pero de un modo más "Dios" jejeje... O sea, cambiar lo que tu deseas (no completamente todo, porque para eso tendriamos que recurri a un debugger y a ingeniería inversa).

Hay valores que son muy difíciles de conseguir ya que nunca cambian, por lo tanto no podemos hacer un "First Scan" y después muchos "Next Scan" hasta dar con el valor  :¬¬ así que es sólo cuestión de suerte encontrarlos (ó de una inteligencia muy "inversa"  ;-) ).

Lo que actualmente estoy viendo es cómo cambiar coordenadas dentro de un MMORPG, y para eso tengo que usar hooks y otras técnicas para editar los valores que envía el cliente a la base de datos, o sea, tendría que cambiar estos valores en el camino, y no es nada fácil (y recién estoy empezando :S). Si a alguien le interesa, puede unirse  ;D
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más

[-Franko-]

Creo que tiene razon kiriost que para hacerse completamente "Dios" se tendria que usar un debugger para conseguir los valores... El cheat Engine trae uno integrado y muchas funciones "desconocidas" por muchos... Yo la verdad que no se usarlas muy bien pero algo las entiendo xD

CitarLo que actualmente estoy viendo es cómo cambiar coordenadas dentro de un MMORPG, y para eso tengo que usar hooks y otras técnicas para editar los valores que envía el cliente a la base de datos, o sea, tendría que cambiar estos valores en el camino, y no es nada fácil (y recién estoy empezando :S). Si a alguien le interesa, puede unirse
No tengo ni idea lo que son los hooks xD
Pero lo que puedes usar en ese caso seria WPE PRO. Estaria interesado en ayudarte, aunque no tengo mucho conosimiento.

Saludos

kiriost

Exactamente WPE PRO utiliza hooks o "ganchos" para engancharse al API que hace posible el uso de sockets para ver todo lo que entra y sale en una aplicación específica.

Si queres usar un debugger para modificar el juego en sí te recomiendo OllyDbg que es gratis y posee millones de plugins para lo que desees.

El que quiera ayudar es bienvenido :), me gustaría formar una comunidad sobre esto..
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más

[-Franko-]

CitarOllyDbg!!!
Obiamente como debuger el olly

CitarWPE PRO utiliza hooks o "ganchos" para engancharse al API
Ahora ya se lo que son los hooks ;D

.:UND3R:.

Conozco algo sobre ollydbg pero más que nada destinado al tema del cracking, pero con respecto a los juegos, como busco addres? y veo que van variando, sería con BP ver su variación? y para buscar valores de address sería en la Memoria (M)??

Gracias

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

kiriost

Para encontrar address variables tenes que saber sobre "pointers" y "offsets".. En mi blog tengo un tutorial hecho por mí.

Ahora estoy haciendo reparaciones en el blog, pero en unos días metete y buscá el tutorial en Game-Hacking, sino lo subo acá.
http://www.godsys.com.ar > Programación. Hacking y Cracking. Sistemas. Desarrollo Web.
Java, C/C++, PHP, Python, Perl, HTML, Game-Hacking, Defacing, Desarrollo Web, GNU/Linux, y más