Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 23 Octubre 2011, 17:01 pm



Título: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 23 Octubre 2011, 17:01 pm
OllyDBG y Cheat engine

OllyDBG puede ser muy útil junto con Cheat engine al momento de querer
alterar, modificar un proceso en tiempo de ejecución y en este tutorial veremos cómo podemos aprovechar estos dos grandes programas en la creación de un trainer que funcione en cualquier máquina.

En esta ocasión utilizaremos como ejemplo un juego llamado: PlantsVsZombies versión 1.2.0.1073 Un juego simple pero muy adictivo.

Descarga:http://www.mediafire.com/download.php?6s16ifbo81evav9 (http://www.mediafire.com/download.php?6s16ifbo81evav9)
(Subido por Wildseba)

Cheat engine:
Cheat engine es un potente buscador de address que por lo general es usado para modificar valores de juegos.

OllyDBG:
Excelente debugger con un sin fin de opciones que facilitan considerablemente su uso.

I)Conociendo al objetivo
Si iniciamos y luego de esperar que cargue el juego veremos el menú principal:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/1.jpg)

Iniciamos una nueva partida en modo aventura y al comenzar el juego veremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/2.jpg)

Explicaré rápidamente el juego, como podemos apreciar vemos una línea de césped esa línea es el lugar en donde nosotros podemos plantar plantas que se encargarán de combatir a los zombies y evitar que estos entren a "nuestra casa" y que nos coman el cerebro, para poder plantar requerimos soles, en la parte superior de la pantalla a la derecha podemos ver la cantidad de soles totales que tenemos y al lado las plantas que podemos plantar. Estas plantas tienen un coste de soles y podemos verlo en la parte inferior de la planta:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/3.jpg)

Para poder colocar una planta debemos seleccionarla con un clic y luego seleccionar en qué posición de nuestro césped la queremos plantar:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/4.jpg)

Una vez plantada se nos descontará de nuestros soles totales el coste de la planta, que en este caso su coste era de 100 soles quedándonos solo 50:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/5.jpg)

Para poder tener más soles podemos recoger los que caen del cielo, estos equivalen a 25 soles:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/6.jpg)

Si atrapamos 2 se nos sumarán 50 soles a nuestra cantidad total:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/7.jpg)

Lo que intentaremos en este tutorial será evitar que al plantar plantas se nos descuenten soles. para ello debemos entender que los juegos al igual que cualquier aplicación trabajan lógicamente con valores y estos están ubicados en una cierta dirección(Address) esta dirección puede estar dentro del ejecutable(rango de address) o fuera de él (Address generado en tiempo de ejecución) por lo que nuestro objetivo será encontrar el address que opera con la cantidad de soles totales, para localizar address utilizaremos Cheat engine.

II)Cheat engine
Abrimos la herramienta Cheat engine y veremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/8.jpg)

veremos un botón que tiene un borde que cambia de color, este botón se encarga de indicarle a la herramienta Cheat engine cual será su objetivo, hacemos clic en el botón y veremos nuestra lista de procesos activos:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/9.jpg)

en este caso el proceso del juego es popcapgame1.exe lo seleccionamos y presionamos Open

Una vez seleccionado podremos buscar el address de los soles:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/10.jpg)
en mi caso actualmente poseo 100 por lo que Cheat engine buscará en todos los address aquellos que tengan valor 100, aclaro que por defecto Cheat engine utiliza números decimales pero si deseamos buscar valores hexadecimales tildamos el cuadro hex y podremos buscarlos sin ningún problema

Si desconociéramos el valor inicial del address que queremos encontrar podemos utilizar la siguiente opción:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/11.jpg)
esto nos puede ser útil para aquellos valores que no son expresados de forma numérica como por ejemplo una barra de vida.

No entraremos en detalle de las opciones de búsqueda que trae Cheat engine ya que actualmente existe mucha información sobre esta herramienta

Presionamos First scan y en el lado izquierdo nos mostrará los address que contienen el valor que hemos buscado(la idea es llegar a 1 address):
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/12.jpg)

Ahora es momento de alterar el valor, nos situamos en el juego y recogemos un sol al realizar esta operación el valor 100 se transformará en 125 ya que cada sol que cae suma 25 a nuestra cantidad total de soles:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/13.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/14.jpg)

Ahora de todos los valores que anteriormente encontró Cheat engine haremos que busqué el valor 125:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/15.jpg)
Presionamos Next scan

Si miramos en la parte izquierda del programa notaremos que encontramos el address correcto :
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/16.jpg)

Le hacemos doble clic y nos aparecerá en la parte inferior del programa:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/17.jpg)

Active:congela o descongela el valor del address, esto nos da la posibilidad si es que está activado nuestra cantidad de soles totales serán siempre 125

Description:Nos da la posibilidad de cambiar o colocar un nombre al address para no confundirlo con otros que tengamos en la parte inferior del programa

Address:Dirección en donde está contenido el valor encontrado

Value:Valor decimal por defecto que contiene el address

Una vez encontrado el valor podremos crear un programa que se encargue de congelar o modificar un valor de un address de un proceso en tiempo de ejecución con tan solo presionar una cierta combinación de teclas, estos programas en el área de los juegos son conocidos como trainer's

pero para poder crear un trainer el address que debemos encontrar debe estar localizado dentro del rango del ejecutable y no afuera de él ya que los address creados en tiempo de ejecución varían en cada máquina e inclusive cada vez que cargamos el juego por lo que el trainer creado funcionaría una sola vez lo cual no es la idea, esto se debe a que los programas generalmente le piden al sistema memoria virtual (VirtualAlloc) para almacenar información que solo será útil mientras se esté ejecutando, como lo son la información de una partida de un juego, no así los avances o progresos ya que estos si los debe tener el programa de manera permanente ya que cada vez que se inicie el juego se cargarán tales datos por lo que son guardados en archivos. Nuestro objetivo será localizar el address en donde operará con nuestro valor ubicado en tiempo de ejecución y modificar la operación para nuestra propia ventaja

III)OllyDBG
Atachamos con OllyDBG popcapgame1.exe:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/18.jpg)

ya cargado nos encontraremos detenido en la siguiente address:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/19.jpg)

Ahora volvemos a Cheat engine y nos dirigimos a la address en la parte inferior, presionamos clic derecho y seleccionamos "Show as hexadecimal",esto para visualizar de la misma manera que OllyDBG:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/20.jpg)

Nos quedará de la siguiente forma:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/21.jpg)

Ahora desde el dump de OllyDBG nos dirigimos al address encontrado con Cheat engine:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/22.jpg)

(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/23.jpg)

ya localizada la address desde OllyDBG intentaremos encontrar el lugar en donde el programa tendrá acceso al valor de la address, para ello colocamos un hardware breakpoint on write:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/24.jpg)

Presionamos F9 y plantamos una planta:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/25.jpg)

Nos detendremos en la siguiente address:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/26.jpg)

Subamos un poco más arriba para ver si encontramos alguna operación llamativa:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/27.jpg)

Notaremos que se realiza una resta, lo más probable es que se reste el valor de la planta con la cantidad total de soles, intentemos invertir el OP-Code por un ADD para que en vez de restar sume el costo de la planta con nuestra cantidad total

(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/28.jpg)

Quitamos el hardware breakpoint y damos RUN al comprar una planta el coste se adicionará:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/29.jpg)
En este caso de 150 aumentó a 250

Obtenido el address ubicado en el ejecutable podremos crear un trainer genérico es decir que sirva para cualquier máquina en donde sea usado

Ahora modificamos el address que está en la parte inferior del Cheat engine:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/30.jpg)

Nos quedará así:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/31.jpg)

Ahora solo nos queda crear el trainer, para ello contamos con la opción de crearlo desde el mismo Cheat engine, nos vamos a:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/32.jpg)

Veremos dos ventanas:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/33.jpg)
Esta es la ventana de configuraciones, en donde podremos seleccionar el icono, el título de la ventana, los atajos del teclado para activar las opciones del trainer, entre otras opciones

La siguiente ventana nos mostrará como quedará nuestro trainer finalizado con las configuraciones actuales que hemos hecho:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/34.jpg)

Nos ubicamos en la ventana de configuraciones  y presionamos Add Hotkey para agregar un atajo y nos aparecerá la siguiente ventana:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/35.jpg)
En esta ventana seleccionamos el addres que queramos que modifique o congele su contenido el trainer, en este caso al tener un solo address en la parte inferior, no nos aparecen más opciones

Seleccionamos el address a agregar el trainer y nos aparecerá lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/36.jpg)

Colocamos los siguientes datos:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/37.jpg)

Type the keys.....
Es la combinación de teclas que debemos digitar para que el trainer modifique el address

Set Value To
Cuando activemos la combinación cambiará el contenido del address al valor actual (ya que el valor actual del address lo hemos cambiado desde OllyDBG)

Description
Texto que aparecerá al lado de la combinación de teclas

Presionamos "OK" y si nos fijamos en la parte izquierda de la ventana de configuraciones veremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/38.jpg)

Ya agregada la combinación de tecla junto con su efecto presionamos "Generate trainer"

Seleccionamos la ruta en donde se generará el trainer, presionamos Guardar

Luego Presionamos Generate:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/40.jpg)

Esperamos hasta el siguiente mensaje:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/41.jpg)

Si abrimos el trainer y todo ha salido correctamente veremos lo siguiente:
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/42.jpg)

Obviamente al ser un ejemplo no se ve bien estéticamente ni mucho menos posee múltiples opciones, pero de esta forma podremos crear Trainer genéricos:

(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/43.jpg)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 23 Octubre 2011, 18:21 pm
Adjunto el tutorial en un .doc:
http://www.mediafire.com/?hi251yitbk17qcc (http://www.mediafire.com/?hi251yitbk17qcc)

Link del trainer resubido:
http://www.mediafire.com/?s1uw3hkpc2fisai (http://www.mediafire.com/?s1uw3hkpc2fisai)

Actualmente estoy con una intermitencia en internet por lo que les pido que me confirmen si algún interesado si los archivos no están erróneos

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Tinkipinki en 23 Octubre 2011, 19:52 pm
Excelente tutorial... ;-)
Seguramente podremos utilizar la aplicacion fuera de los juegos  para encontrar las direcciones de valores introducidos.

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 23 Octubre 2011, 20:04 pm
Excelente tutorial... ;-)
Seguramente podremos utilizar la aplicacion fuera de los juegos  para encontrar las direcciones de valores introducidos.

Saludos

Efectivamente puede ser usado en aplicaciones de manera general la finalidad era mostrar como podemos localizar address y como podemos parchearlos en tiempo de ejecución con el generador de trainer que posee el Cheat engine


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 23 Octubre 2011, 20:20 pm
Creo que lo que dice Tinkipinki es que se podria usar el Cheat Engine para buscar direcciones para los crackmes por ejemplo, y puede ser que se pueda aunque la veo complicarse al pedo :P


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 23 Octubre 2011, 20:51 pm
Creo que lo que dice Tinkipinki es que se podria usar el Cheat Engine para buscar direcciones para los crackmes por ejemplo, y puede ser que se pueda aunque la veo complicarse al pedo :P

lei mal, claro que se podría utilizar pero cumpliría una búsqueda similar que buscar en memoria (alt+M) desde ollydbg y sin poder tracear con Cheat engine es complicado ver como cambian los valores introducidos, pero pueden ser buenos complementos

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: karmany en 23 Octubre 2011, 21:11 pm
¿Qué se puede decir ante este excelente tutorial?
Muchas gracias por compartir tus conocimientos.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: jackgris en 23 Octubre 2011, 22:51 pm
La verdad que me gusto este tuto


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: тαптяα en 23 Octubre 2011, 23:26 pm
Muy bueno Under, me ha gustado este tutorial, quizas te enseñe mi crackme, a ver que haces con el xD


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 24 Octubre 2011, 01:35 am
Muy bueno Under, me ha gustado este tutorial, quizas te enseñe mi crackme, a ver que haces con el xD
Esperamos con ansias tu crackme en este subforo, saludos

La verdad que me gusto este tuto
Muchas gracias jackgris

¿Qué se puede decir ante este excelente tutorial?
Muchas gracias por compartir tus conocimientos.
Gracias Karmany


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: [NelSito*] en 24 Octubre 2011, 20:35 pm
Sinceramente es muy bueno el conocimiento compartido, pero si me permites yo tambien hare una publicacion del hacking para juegos online sobre hallar pointers & offsets, simplemente usare CheatEngine & MHS5.

Muy buen tutorial.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Wildseba en 24 Octubre 2011, 22:24 pm
Yo copero con el juego en la versión del tutorial, el URL para el juego en FULL es

http://www.mediafire.com/download.php?6s16ifbo81evav9 (http://www.mediafire.com/download.php?6s16ifbo81evav9)


Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Wildseba en 24 Octubre 2011, 23:14 pm
Saludos .:UND3R:. , queria decirte que el trainer no lo puedo abrir porque se subio mal, por favor arregla el problema.


Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 25 Octubre 2011, 02:20 am
Yo copero con el juego en la versión del tutorial, el URL para el juego en FULL es

http://www.mediafire.com/download.php?6s16ifbo81evav9 (http://www.mediafire.com/download.php?6s16ifbo81evav9)


Saludos

Gracias por el LINK lo agrego al post y resubo el trainer saludos

EDIT:aquí el trainer resubido
http://www.mediafire.com/?s1uw3hkpc2fisai (http://www.mediafire.com/?s1uw3hkpc2fisai)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: isidora en 29 Noviembre 2011, 22:33 pm
Muy buen tutorial, explica claramente. Agrego que con CE también es posible realizar una inyección de código sin necesidad de utilizar OllyDBG, una vez que tengamos el valor de las vidas en la lista, presionamos con el secundario sobre el valor y buscamos la opción “Find out what accesses this address”, los mostrara al igual que OllyDBG una lista con las direcciones que acceden al valor.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 29 Noviembre 2011, 23:42 pm
Muy buen tutorial, explica claramente. Agrego que con CE también es posible realizar una inyección de código sin necesidad de utilizar OllyDBG, una vez que tengamos el valor de las vidas en la lista, presionamos con el secundario sobre el valor y buscamos la opción “Find out what accesses this address”, los mostrara al igual que OllyDBG una lista con las direcciones que acceden al valor.

efectivamente pero preferí realizarlo de manera más manual pero más segura.

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 19 Mayo 2012, 05:12 am
Ya entendi el tutorial y todo lo que me explicaste por privado UND3R los otros dias. Pero como siempre tengo otras dudas mas especificas que la puede contestar el que sepa, no necesariamente vos.

La duda es.. que el trainer lo que hace es modificar esta address ahora: 0041E844 , la de la instruccion, para cambiarla por otra instruccion que quieramos, en este caso solo la invertimos. Pero esa address porque no cambia nunca? asi como cambiaba la address del valor. Es porque una address esta dentro del ejecutable y la otra fuera? o que?

Es decir.. vieron como lo del funcionamiento de la IAT? algo asi se hace para que siempre que leamos la direccion 0041E844 en realidad estamos leyendo otra en la memoria RAM?

Otro ejemplo seria de que la mayoria de los programas empiezan en su OEP en el address 00401000, pero no esta haciendo referencia a la memoria RAM porque sino cuando cargo 2 programas en el Olly me dicen q los 2 empiezan en esa address, cosa q no seria posible..

Espero que alguien me entienda xD

Iba a crear un tema a parte sobre esto pero si pueden contestarme aca le queda la respuesta a otro que venga por este tema..

Yo he leido sobre esto pero no he entendido bien aun lo que es la ImageBase y que es un Offset, no llego a entenderlo bien aun, me cuesta horrores esto jaja.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Иōҳ en 19 Mayo 2012, 05:38 am
Hola Edu, haber si te resuelvo las dudas....

La duda es.. que el trainer lo que hace es modificar esta address ahora: 0041E844 , la de la instruccion, para cambiarla por otra instruccion que quieramos, en este caso solo la invertimos. Pero esa address porque no cambia nunca? asi como cambiaba la address del valor. Es porque una address esta dentro del ejecutable y la otra fuera? o que?

Es decir.. vieron como lo del funcionamiento de la IAT? algo asi se hace para que siempre que leamos la direccion 0041E844 en realidad estamos leyendo otra en la memoria RAM?

Eso depende si la dirección que haces referencia es una estática o dinámica, si es dinámica necesitas encontrar el BasePointer que hace referencia a tu address dinámica, en ocasiones pueden haber muchos punteros de punteros, o multilevelpointer como lo llama el CheatEngine (buen nombre por cierto).

Como sabes que es estática o no?, pues mi experiencia en el gamehacking de hace años (estoy en retiro momentaneo del gamehacking ojo! xD) me dice que todo esto depende, primero el game usa librerías, entonces como se cargan estas librerías?, cuál es la ImageBase de ellas?, aveces son programas de tal manera que la ImageBase sea fija y así al cargarlas las direcciones de esa librearía sean estáticas.

Ejemplo:

DLL1 ImageBase = 03500000h
DLL2 ImageBase = 03600000h
DLL3 ImageBase = 03700000h

.
.
.

DLLn ImageBase = 0XX00000h


Pero no siempre se cumple, entonces en ese casi las direcciones serían "dinámicas".

Es algo que se crea en juego?, un stage o una misión por ejemplo?, pues es dinámica en la gran mayoría de los casos pero como siempre puede haber excepciones.


Otro ejemplo seria de que la mayoria de los programas empiezan en su OEP en el address 00401000, pero no esta haciendo referencia a la memoria RAM porque sino cuando cargo 2 programas en el Olly me dicen q los 2 empiezan en esa address, cosa q no seria posible..

Nop, en los sistemas de 32 bits hay 4gb de direccionamiento en MEMORIA (ojo, no significa que ese sea su peso en disco), 2gb asignados a usermode, y los otros 2gb a kernel, cada proceso tiene un ÚNICO espacio de memoria, un ejemplo es que en memoria de tu target en la dirección ficticia 0B4DC0D3h tienes la vida de tu personaje, en tu trainer NO puedes hacer esto

mov [0B4DC0D3h] , -1

Por que estás haciendo refencia a tu trainer no al target.

Recuerda que el modelo de memoria NO es FLAT, como en ms-dos.

Saludos,
Nox.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 19 Mayo 2012, 06:19 am
Creo que le has dado en tu ultima frase "Recuerda que el modelo de memoria NO es FLAT, como en ms-dos". Lo demas no lo entendi bien pero es algo que aprendere luego, yo por ahora quiero saber lo basico basico y con tu frase me hizo pensar distinto sobre la RAM.

A ver, ya vengo voy a ver el libro que estoy leyendo como es que dice algo ahi...xD ya vine jajajaja, no entiendo bien lo que pasa. Pero pone la RAM como un edificio y cada piso tiene una altura, lo que seria el tamaño u offset. Algo asi:

RAM

FFFF





2000

1000

0000

Yo entiendo a la RAM como eso, como un edificio empezando desde la address 0000 hasta FFFF por ejemplo, entonces pienso que cada programa se carga en el lugar que entre, que no este ocupado, por ejemplo a partir del address 2000, y entonces pensaba que esa tendria que ser la ImageBase y luego entonces cuando en ese programa cargado se ve en el olly algo como:

2100   Add BX...
2200   MOV ...

En el medio de 2100 y 2200 estan los offsets, que serian los que se muestran en el Dump por columnas.

Pero se arruina todo lo que pensaba, al ver que la mayoria de los programas tienen la misma ImageBase, por lo que entonces no se cumple lo que digo, porque significaria que cargan en la misma direccion de la RAM y no se puede...

Pero.. tal vez eso de que la memoria RAM no es FLAT, quiere decir que no es asi como tenia pensado que era y entonces espero que me puedan explicar, asi de la misma forma que intente yo recien, solo que esta bien me diran como es de verdad xD


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Иōҳ en 19 Mayo 2012, 06:26 am
Creo que aquí está tu respuesta:

Citar
Nop, en los sistemas de 32 bits hay 4gb de direccionamiento en MEMORIA (ojo, no significa que ese sea su peso en disco), 2gb asignados a usermode, y los otros 2gb a kernel, cada proceso tiene un ÚNICO espacio de memoria, un ejemplo es que en memoria de tu target en la dirección ficticia 0B4DC0D3h tienes la vida de tu personaje, en tu trainer NO puedes hacer esto

mov [0B4DC0D3h] , -1

Por que estás haciendo refencia a tu trainer no al target.

Recuerda que el modelo de memoria NO es FLAT, como en ms-dos.

Si no entiendes alguna parte dímelo y te lo explico mejor, el libro que estás leyendo cuando fue editado? no será en sistemas de 16bits? cuando el modelo de memoria ERA FLAT?

Saludos,
Nox.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 19 Mayo 2012, 06:38 am
Esque habla de todos los tipos, de real mode, de protected mode y virtual mode. Pero no le entiendo porque no le encuentro logica, pero a ver.. lo que tu dices entonces es que la RAM al no ser FLAT (plano no?) significa que habra muchos edificios como el que puse no? Cuando se carga un programa, donde se mete en la RAM?

Tipo imaginando de la forma esta:

RAM

-----
Programa 1
-----
Programa 2
-----
Programa 3
------

Donde cada programa es un proceso nuevo, y todos arrancan desde el address 0000 hasta FFFF (para dar un ejemplo, no se a cuantos llegan, los q sean 4gb en hexadecimal no?)

Entonces el Trainer esta configurado para que modifique el address 40156F por ejemplo pero indicando que se refiere a la del proceso del juego que se indico. Ya que sino modificaria a cualquier otro proceso abierto q tenga la misma address (cosa que tendra).

Ahora si entendi? esque es lo mas logico que se me ocurre ahora.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Иōҳ en 19 Mayo 2012, 06:54 am
Ahí vas pero te estás confundiendo los tipos de modos

http://computacion.cs.cinvestav.mx/~ameneses/pub/tesis/ltesis/node29.html

http://es.wikipedia.org/wiki/Modo_protegido

http://es.wikipedia.org/wiki/Modo_real

Donde cada programa es un proceso nuevo, y todos arrancan desde el address 0000 hasta FFFF (para dar un ejemplo, no se a cuantos llegan, los q sean 4gb en hexadecimal no?)

Nop, en 32 bits sería 00000000h ... 7FFFFFFFh, eso son los 2gb de direccionamiento en memoria para modo usuario (las app de escritorio que haces en vb, corren en este nivel de privilegios). Los otros 2gb son para modo kernel.

Entonces el Trainer esta configurado para que modifique el address 40156F por ejemplo pero indicando que se refiere a la del proceso del juego que se indico. Ya que sino modificaria a cualquier otro proceso abierto q tenga la misma address (cosa que tendra).

Ahora si entendi? esque es lo mas logico que se me ocurre ahora.

Si tu quieres modificar la diercción 40156F del game, pero tu trainer haces esto:

mov dword ptr [40156Fh], -1

NO estás modificando la dirección de cualquier proceso, estás modificando la dirección 40156F que pertenece a tu trainer.

Para modificar la dirección 40156F de otro proceso se usa la API WriteProcessMemory.

WriteProcessMemory ( hProcesoAModificar, 40156F, &lpbuffer, nSize, NULL)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 19 Mayo 2012, 07:19 am
Lo del trainer, es como dice el tutorial, le indico el address del juego a modificar con el value que indique, que este sera la nueva instruccion en hexadecimal. Eso lo tengo claro, la cosa es lo de la RAM.

Ya creo que le entendi, ahora q me dijiste eso de que no es plana. Pero vamos por parte..solamente contestame esto por ahora:

La memoria RAM seria un listado de address, desde 00000000h hasta el tamaño de la RAM supongamos que de 4GB.
A lo que cada programa se carga a la RAM creando un espacio de 2GB de reserva cada uno? como es posible, si ejecuto 3 programas ya consume todo.

Sacame esa duda y luego sigo con otras cosas xD Gracias Nox! un viernes de noche me estas ayudando, sos un grande!


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Иōҳ en 19 Mayo 2012, 07:43 am
Sobre la memoria RAM especificamente no sé que decirte no tengo mucha información sobre eso, voy a tratar de buscar, pero el tema de segmentación parrafos, etc, ya no es preocupante en los sistemas de 32 bits.

Jeje, ahora estás confundiendo con los términos, son 4gb de direccionamiento (2^32), 2gb de DIRECCIONAMIENTO en memoria son para modo usuario, es decir que las direcciones 00000000 ... 7FFFFFFFh equivalen a 2gb.



Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: BlackZeroX en 19 Mayo 2012, 17:04 pm
mmm OllyDBG no es necesario... el propio Cheat Engine tiene la opción de detectar desde que direccion se edito el offset X...

Solo hay que darle click secundario al elemento en-listado y en la opción:

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/cheat%20engine.31597.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=cheat%20engine.31597.png)

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/lista%20cheat%20engine.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=lista%20cheat%20engine.png)

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/cheat%20engine%20ASM.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=cheat%20engine%20ASM.png)

En la ultima ventana inclusive puedo inyectar código ASM, dll, o con lo que le haya al ASM generar directamente un trainer.

Dulces Lunas!¡.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: $Edu$ en 19 Mayo 2012, 18:17 pm
Sobre la memoria RAM especificamente no sé que decirte no tengo mucha información sobre eso, voy a tratar de buscar, pero el tema de segmentación parrafos, etc, ya no es preocupante en los sistemas de 32 bits.

Jeje, ahora estás confundiendo con los términos, son 4gb de direccionamiento (2^32), 2gb de DIRECCIONAMIENTO en memoria son para modo usuario, es decir que las direcciones 00000000 ... 7FFFFFFFh equivalen a 2gb.



Yo pregunto, no tienes porque saberlo, todos aprendemos algo nuevo siempre jeje. Tal vez viene alguien a explicarme bien esto.
Lo de los 4gb lo dije por dar un ejemplo en la memoria RAM, yo digo porque.. a que te referis con 2gb de direccionamiento en memoria?

Tal vez creo un tema nuevo para debatir todo esto no?


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 23 Mayo 2012, 18:50 pm
mmm OllyDBG no es necesario... el propio Cheat Engine tiene la opción de detectar desde que direccion se edito el offset X...

Solo hay que darle click secundario al elemento en-listado y en la opción:

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/cheat%20engine.31597.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=cheat%20engine.31597.png)

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/lista%20cheat%20engine.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=lista%20cheat%20engine.png)

(http://infrangelux.sytes.net/MyInfraPC/view.php?InfraFile=/Public%20Files/cheat%20engine%20ASM.png) (http://infrangelux.sytes.net/MyInfraPC/index.php?dir=/Public%20Files&file=cheat%20engine%20ASM.png)

En la ultima ventana inclusive puedo inyectar código ASM, dll, o con lo que le haya al ASM generar directamente un trainer.

Dulces Lunas!¡.

Efectivamente, cuando hacía el tutorial (año atrás) sabía que se podía hacer directamente con Cheat Engine, pero de todas maneras siempre me ha gustado irme por el camino un poco más difícil que es justo el que más te enseña, saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Wildseba en 27 Enero 2013, 22:43 pm
Cuando le doy atach al popcapgame1.exe me dice un error de que nno lo puede leer, y no me muestra nada en el DUMP, por lo tanto no puedo hacer el trainer  :-(


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Mad Antrax en 30 Enero 2013, 15:27 pm
Cuando le doy atach al popcapgame1.exe me dice un error de que nno lo puede leer, y no me muestra nada en el DUMP, por lo tanto no puedo hacer el trainer  :-(

Puedes hacer cualquier tipo de trainer sin necesidad de usar Ollydbg

EDIT: Ufff, ahora que leo la guia, veo que está MUY desactualizada. Desde el propio CheatEngine puedes inyectar código ASM directamente, sin necesidad de complicarnos la vida con OllyDbg


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 3 Febrero 2013, 19:52 pm
Puedes hacer cualquier tipo de trainer sin necesidad de usar Ollydbg

EDIT: Ufff, ahora que leo la guia, veo que está MUY desactualizada. Desde el propio CheatEngine puedes inyectar código ASM directamente, sin necesidad de complicarnos la vida con OllyDbg

No está desactualizada, tal como dice el título:
Citar
Creación de trainers con OllyDBG y Cheat engine

El por qué de la utilización de OllyDbg por dos motivos:
- Al ser del subforo Ing. Inversa, el uso de OllyDbg como herramienta adicional siempre tendrá una buena cabida.

- Cómo todos siempre decimos (Ing. Inversa): "aquí no se dan los pecados, aquí enseñamos a pescar", usé la herramienta OllyDbg para que se entendiera el por qué (explicando detalladamente).

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Trydox09 en 14 Septiembre 2013, 06:31 am
Mi pregunta es ¿ Esto sirve con juegos online MMRPG ?


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: тαптяα en 14 Septiembre 2013, 10:39 am
No creo, porque los valores estarán en su servidor. Y no en tu aplicación.

Pero averigua, buscando el nombre del juego y Cheat engine o Ollydbg


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: forever21es2001 en 17 Octubre 2013, 23:27 pm
borrado


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Gotas en 22 Abril 2014, 14:25 pm
Muy bueno el tutorial y me parece bien que uses el OllyDbg, ya que para aquellas personas que dicen que hubieses usado el Cheat Engine para encontrar el address, esto es más seguro y una manera de aprender mejor como tu dices. Porque esto también puede ser utilizado para juegos online con protección " AntiDebugger " , ya que al momento de localizar el address con el Cheat Engine se te cierra el juego por protección, en cambio con el OllyDbg puedes conseguirlo. Muy bueno amigo, gracias por tan excelente tutorial.  ;-)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Mad Antrax en 22 Abril 2014, 14:42 pm
Muy bueno el tutorial y me parece bien que uses el OllyDbg, ya que para aquellas personas que dicen que hubieses usado el Cheat Engine para encontrar el address, esto es más seguro y una manera de aprender mejor como tu dices. Porque esto también puede ser utilizado para juegos online con protección " AntiDebugger " , ya que al momento de localizar el address con el Cheat Engine se te cierra el juego por protección, en cambio con el OllyDbg puedes conseguirlo. Muy bueno amigo, gracias por tan excelente tutorial.  ;-)

En las últimas versiones de CheatEngine puedes activar una protección anti-antidebug (que funciona muy bien la verdad) o simplemente cambiar el debugger default de CheatEngine por su versión VEH (indetectable en el 90% de los juegos online).

Si incluso tuvieras que lidiar con algún juego "especial", puedes cargar el driver que viene con CheatEngine DBVM para lanzar un debugger en ring0 (kernel-mode debugger).

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Gotas en 23 Abril 2014, 12:09 pm
En las últimas versiones de CheatEngine puedes activar una protección anti-antidebug (que funciona muy bien la verdad) o simplemente cambiar el debugger default de CheatEngine por su versión VEH (indetectable en el 90% de los juegos online).

Si incluso tuvieras que lidiar con algún juego "especial", puedes cargar el driver que viene con CheatEngine DBVM para lanzar un debugger en ring0 (kernel-mode debugger).

Saludos
Mad Antrax, gracias por la información.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: :x:_DARKstar_:x: en 14 Julio 2014, 17:13 pm
muchisimas gracias amigo me as alegrado el dia  :laugh: .


podrias ase un tutorial sobre las funciones de CHARLESPROXY y como se usa . o sino as uno de OLLYDBG y sus funciones, como se usa:  ;-) muchas gracias de todos modos . no tienes idea de cuanto busque un tutorial que me explique bien como se ase. y me puedes enseñar como hacer un trainer con cheat engine que tenga (launch)
 conque me ayudes con solo una de esas cosas que te pedi me basta GRACIAS


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: MCKSys Argentina en 14 Julio 2014, 18:40 pm
o sino as uno de OLLYDBG y sus funciones, como se usa

Aqui  (http://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo_aprende_ingenieria_inversa_desde_cero-t345798.0.html)tienes material por donde empezar.

Saludos!


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: luisito eb en 23 Octubre 2014, 03:18 am
hola amigo esta un poco confuso la situación pero como descargo el ollyDBG?  ;)

me pasarías el link del programa  :xD

por favor.  ::)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: luisito eb en 23 Octubre 2014, 18:21 pm
CHE EN LA PARTE DE CUANDO QUIRO PONER EL JUEGO NO RESPONDE Y TENGO QUE SALIR DEL JUEGO


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: patilanz en 28 Octubre 2014, 16:58 pm
Hola esta muy bien el tutorial conseguir hacer mi trainer para un programa en c++ que hice solo para probar pero intente usar la dirección de memoria que encuentras con ollydbg para cambiar la memoria con mi programa y no hace nada. La dirección que encuentro debe de poder utilizarse para esto o no? Para crear el trainer sin necesidad de cheat-engine.

Saludos


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 30 Octubre 2014, 02:05 am
Hola esta muy bien el tutorial conseguir hacer mi trainer para un programa en c++ que hice solo para probar pero intente usar la dirección de memoria que encuentras con ollydbg para cambiar la memoria con mi programa y no hace nada. La dirección que encuentro debe de poder utilizarse para esto o no? Para crear el trainer sin necesidad de cheat-engine.

Saludos

Efectivamente pero estás seguro que tienes permisos para modificar la dirección de otro ejecutable, tal vez el problema se debe a que no haz programado bien el trainer, saludos.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: patilanz en 31 Octubre 2014, 14:19 pm
Permisos tengo de administrador ya que modifico el archivo de manifiesto . Tengo otro tema creado para preguntar y en la segunda pagina creo que se ve bien con la imagen.

http://foro.elhacker.net/programacion_cc/creacion_de_un_trainer_en_c-t422317.14.html
Me puedes ayudar ahí por favor que tengo muchas ganas de editar la memoria.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: alex16t329 en 21 Enero 2015, 09:34 am
Disculpa me entereza mucho eso de los trainers (la verdad es que entiendo chat engine ala perfeccion) pero lo que no se usar es OllyDBG no se si pudieras hacer un tutorial en video usando el OllyDBG y el cheat engine en creacion de trainers.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: MCKSys Argentina en 21 Enero 2015, 15:25 pm
Disculpa me entereza mucho eso de los trainers (la verdad es que entiendo chat engine ala perfeccion) pero lo que no se usar es OllyDBG no se si pudieras hacer un tutorial en video usando el OllyDBG y el cheat engine en creacion de trainers.

Hola!

En este (https://foro.elhacker.net/ingenieria_inversa/faq_iquesteres_nuevo_aprende_ingenieria_inversa_desde_cero-t345798.0.html) post encontrarás un tutorial completo sobre cómo usar Ollydbg.

Saludos!


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: totoday72 en 27 Mayo 2015, 05:06 am
quisiera saber mas acerca de estass maravillosas herramientas :D son muy buenas y voy a probar ahora con esto jeje :D gracias amigo buen aporte :)


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: ByJørGe en 10 Junio 2015, 22:14 pm
Podrias hacer un tutorial en mi game ? haber si logras hacer lo mismo o modificar algo.
Aca el Link de la pagina del juego

MOD EDIT: Lee las reglas del foro y del subforo antes de hacer posts como éste.


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: Tacamine en 20 Enero 2018, 02:00 am
Simplemente Perfecto!
Un tutorial muy explicativo, concreto y bien redactado.
Y el echo de incluir un link para descargarlo demuestra el empeño que le has dado.  ;-)

Me quedó una duda la cual me detiene de llevar a cabo el trainer:

¿De donde conseguiste el valor B789F303 ?

¿Como tengo que saber cual valor debo poner en mi caso?

Desde ya gracias por tu tiempo.  :D


Título: Re: [TUTORIAL]Creación de trainers con OllyDBG y Cheat engine
Publicado por: .:UND3R:. en 15 Febrero 2018, 15:58 pm
(http://r00t-pssw.webcindario.com/images/Crack/OllyDBG%20y%20Cheat%20engine/28.jpg)

Pues por los OP Codes de las instrucciones, en realidad re-leyendo el tutorial como se ve: modificar la instrucción significó editar un solo valor HEX (ver hex en rojo), por lo cual bastaría con editar solo ese valor en la dirección dentro del juego

En resumen es la representación del valor hexadecimal de la instrucción modificada