GodSys

GodSys
El Poder de la Programación

miércoles, 17 de febrero de 2010

Cheat Engine: Buscaminas.

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 v
emos 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.
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 e
n el icono de la computadora que aparece en verde.
Nos aparecerá la lista de todos los procesos que se están ejecutando en nuestra Pc ("Process List"). Bajamos la barra hasta abajo hasta encontrar el proceso winmine.exe ,o sea, es el Buscaminas que se está ejecutando. 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 procesos winmine.exe (Buscaminas) desde el CH (abreviacioón que comenzaré a utilizar de ahora en adelante para el Cheat Engine xD). Ahora viene lo mas difícil (no tanto :D), tendremos que buscar la dirección de memoria en donde se almacena el valor del tiempo del Buscaminas. Volvemos al Buscaminas que tenemos abierto y vemos que todavía 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, ahí escribimos 0, es decir, lo que vale el tiempo en el juego. Y luego le damos a "First Scan" (primer escaneo) y CH buscará en el juego todas las direcciones de memoria que contengan el valor 0 (cero).

Pero..Cuál de todas esas direcciones de memoria es la del tiempo??? Bueno..calma, buscar una dirección no es nada fácil. 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 será buscar esa dirección a través de su valor como lo hicimos anteriormente, entonces, donde dice "Value:" hay un cuadro de texto (donde ingresamos anteriormente el 0), allí 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 más adelantado para esperar que el tiempo llegue a ese valor y pulsaremos rápidamente "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 rápidamente 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 también 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 allí despejamos las demás direcciones y no quedó 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 seguirá corriendo el tiempo. En el caso del Counter-Strike, podríamos congelar el numero de balas y así nunca se nos acabarían :D.
Hacemos doble click en la dirección de memoria que contiene el valor del tiempo y abajo nos aparecerá 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 verán es algo muy fácil!!!
Perdonen el extenso tutorial, pero quiera que entiendan cada punto, lo que es una dirección 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, étc. Podrían hasta crear un cheat para ver a través de las paredes en el Counter-Strike, o agregarse vida.

En le próximo tuto veremos como hacer esto pero desde C++, es decir, creando un programa que haga esto!

Gracias...
GodSys

1 comentario:

  1. Hey men y los juegos que no marcan tiempo ni puntaje sino q lo marcan al final del mundo? se pueden modificar, pues estoy con un juego flash y se q los valores se multiplican x8 pero kiero modificar el tiempo y no me aparece :S

    ResponderEliminar