[Tutorial] Usar Cheat Engine para modificar juegos + inyección de código

Iniciado por Mad Antrax, 1 Febrero 2013, 11:46 AM

0 Miembros y 5 Visitantes están viendo este tema.

Mad Antrax

Hola a todos, os traigo un completo tutorial para que aprendáis a utilizar Cheat Engine (a partir de ahora CE). Algunos quizás conozcan ésta herramienta para hacer trampas en algunos juegos, lo que a lo mejor no sabían es que es una herramienta MUY completa, con un debbuger genial, comparador de estructuras e inyección de código.

Para enseñar como funciona CE, he programado una especia de "video juego" en VB6. Lo he programado especialmente para éste tutorial, así que no esperéis que sea un juego divertido, jajaja.


DESCARGA EL JUEGO: http://www.mediafire.com/?ucuhy8ebun71s8j
DESCARGAR CHEAT ENGINE 6.2: http://cheatengine.org/

El juego es muy sencillo y he añadido las típicas características que podéis encontrar en el 90% de los juegos actuales: Tiempo, Vida o Magia, Objetos en un inventario, etc...

Nuestro objetivo será aprender a usar CE de forma básica para modificar la memoria de un proceso. Cuando tengáis algo de soltura, os enseñaré a inyectar código en un juego para conseguir mejores "trucos". Os iré enseñando paso por paso con capturas de pantalla lo que debéis hacer.

1. Primero abrimos el juego y cargamos la partida, a la derecha tendréis vuestra salud y magia, así como el tiempo del juego. A la izquierda vuestra mochila de objetos (vacía) y abajo los controles del juego. En la parte central aparecen los eventos, a modo de información.

2. Abrimos CE y pulsamos el primer botón situado en la esquina superior izquierda, es para abrir el proceso que queremos debuggear o trucar. Está remarcado con un recuadro coloreado.


2. Ahora aparece una ventanita mostrando los procesos en ejecución, por norma general, los procesos abiertos en último lugar a parecen al final del listado. Buscamos el nombre del juego y hacemos doble-click (OPEN)


3. Ahora ya tenemos el proceso abierto, volvemos al juego y empezaremos a "trucar". Nos vamos a centrar en el tiempo. Abajo tienes un botón para poder pausar el juego, esto facilita un poco las cosas. Pulsamos pausa y miramos que valor tenemos en el tiempo, en mi caso lo he pausado en 81


4. Vamos a la ventana del CE, en la parte central hay 3 recuadros, son los más importantes y ahí especificaremos la búsqueda que queremos realizar. Empezaremos poniendo:

Value: 81
Scan Type: Exact Value
Value Type: All

En "Value" ponemos el valor de la variable que queremos modificar/trucar. En mi caso es 81, ya que es el valor que hay en el juego. Como he puesto pausa, el tiempo no decrece y por eso es más fácil buscarlo.

En "Scan Type" ponemos "Exact Value", ya que en mi caso conocemos el valor exacto que queremos buscar (81). Si por casualidad quisieramos buscar un valor desconocido usaríamos "Unknow initial value" (este ejemplo lo veremos al hackear la saludo o maná del jugador, más adelante)

En "Value Type" ponemos "All". Normalmente el 90% de los juegos usan variables de tipo 4-byte, es lo más común, pero en mi juego de ejemplo, las variables son de 2-byte. Por eso, si tienes dudas y no sabes que valor tiene una variable, lo mejor es poner All y CE buscará todas las posibilidades.

Pulsamos el botón FIRST SCAN


CE hará una búsqueda muy rápida y me mostrará TODAS LAS DIRECCIONES DE MEMORIA que contengan en valor exacto 81, en mi caso han salido 438 direcciones. Que significa eso?

Esas 438 direcciones contienen el valor 81 en su interior, lo que significa que 1 de esas 438 será la dirección encargada de almacenar el tiempo del juego. La verdad que 438 son demasiadas así que deberíamos reducir ese número, como lo hacemos? Muy fácil.

1. Quita la pausa en el juego y deja que el valor siga decreciendo, en mi caso dejo que llegue hasta 79 y pulso de nuevo pausa para dejarlo ahí quieto.

2. Volvemos al CE (sin cerrar nada) y cambiamos los valores:

Value: Quitamos el 81 y ponemos 79 (en tu caso por el valor que salga en tu pantalla)
Scan Type: Exact Value (Al ser un número conocido, ponemos un valor exacto)
Value type: All

Y ahora pulsamos el segundo botón que pone: NEXT SCAN. Ojo y no pulses NEW SCAN, ya que borrarías las anteriores 438 direcciones encontradas y tendrías que empezar de nuevo:


En mi caso CE ha devuelto solo 2 direcciones encontradas

60EAFC:1
60EAFC:2


Los número de :1 y :2 significan el tipo de dirección, es decir de 1-byte y de 2-byte. Si nos fijamos es la misma dirección de memoria solo que nos da la posibilidad de trabajar con 1-byte o 2-bytes. Hacemos doble click sobre 60EAFC:2 para mandar la dirección encontrada a la parte inferior.


Ahora que tenemos la dirección en la parte inferior hacemos doble click en su valor, se nos abrirá una ventanita donde podemos cambiar el valor de la dirección, ponemos 99 y damos aceptar. Hacemos lo mismo en la descripción y ponemos la palabra "TIEMPO" (ésto es solo a nivel interno y nos ayudará a ser más ordenados). Por ultimo marcamos la casilla. Lo que hace esta casilla es forzar a que esa dirección contenga SIEMPRE ese valor:


Así es como debería quedar, ahora vuelve al juego y quita la pausa, verás como el tiempo ya no decrece, se queda congelado en un mismo valor. Posiblemente te aparezca 98, eso es debido a que el juego coge el valor (99) le resta -1 y lo muestra, pero CE vuelve a escribir 99 consiguiendo un Cheat/Truco de tiempo ilimitado :D

=========================================

Bueno, hasta aquí la primera lección, es lo más fácil y sencillo de CE, supongo que la mayoría ya domináis éste tipo de función. Si veo que el hilo ha tenido buena aceptación me animaré a hacer las siguientes partes:

1. Uso básico de CE
1.1 Buscar una variable y modificar el valor/frezee
1.2 Buscar una variable de valor desconocido
1.3 Buscar una variable de valor desconocido (difícil)
2. Inyección de código
3. Creación de un trainer
4. Comparar estructuras

Por el momento hemos llegado al 1.1 :D Prueba de realizar este sencillo tutorial y comenta en el hilo como te ha ido, si tienes problemas o dudas. Para los más animados, os podéis avanzar e intentar trucar vuestra salud/vida, haciendo que la barra roja no decrezca. Os dejo una pista: Trabajar con Unknow initial value y usar los tipos Decreased value o Increased. Si no os sale no pasa nada, ya que lo explicaré en la próxima lección :D
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Mad Antrax

#1
Bueno, aquí os presento la parte 2 del tutorial

En ella seguiremos utilizando el "juego" que he programado especialmente para éste hilo. Para continuar debéis entender el paso n1 del tutorial, es muy sencillo, si no te ha salido o no lo has entendido, ruego que preguntes tus dudas en el hilo.

En éste paso nos centraremos en encontrar un valor "desconocido". En la parte n1 queríamos trucar el tiempo, el propio juego lo mostraba de forma numérica por pantalla y era MUY sencillo encontrar el valor al poder usar búsquedas exactas. Aquí nos centraremos en buscar el valor de tu vida (barra de color rojo), como puedes observar, el juego no muestra el valor de tu vida de forma numérica, así que no sabemos si tenemos 10 puntos de vida, 100, 1000 o cualquier otro valor interno. ¿Como se hace? Muy fácil:

1. Asegúrate de pausar el tiempo (o de hackearlo usando el paso 1)
2. Familiarízate con el juego, utiliza los botones para alterar el valor de tu vida


3. Carga CE, abre el proceso Game_tut.exe (ver tutorial n1)
4. Configura CE de la siguiente forma


La explicación es sencilla. Usaremos Unknown initial value en Scan Type cuando queremos buscar una dirección cuyo valor desconocemos o es invisible. En Value Type marcamos byte-2, ya que os expliqué que Visual Basic 6.0 utiliza direcciones de 2 bytes para trabajar. La mayoría de los juegos y programas utilizan direcciones de byte-4. Pulsamos First Scan, en mi caso CE devuelve 2,8 millones de direcciones.


El siguiente paso es volver al juego, pulsamos el botón Recibir Daño un par de veces, hasta que veamos que la barra de vida roja empieza a decrecer, en ese momento cambiamos el Scan Type de CE a Decreased Value y pulsamos Next Scan


Lo que hemos hecho con ésta acción es decirle a CE que de las 2,8 millones de direcciones encontradas en la primera búsqueda, nos muestre solo las que han decrecido (entre esas direcciones seguro que estará nuestra salud). En mi caso las direcciones encontradas bajan hasta 5180. Ahora hay que volver al juego, recibir algo de daño y pulsar Next Scan con la opción Decreased Value, cada vez que repitas esta acción, el número de direcciones encontradas por CE irá disminuyendo. Para ser más efectivo puedes probar lo siguiente:

Pulsa el botón Usar poción HP y en CE cambia el tipo por Increased Value, ésto buscará las direcciones que hayan aumentado, reduciendo mucho la búsqueda. Puedes ir jugando con el botón de recibir daño o usar poción y usar búsquedas en Increased o Decreased.


Si lo haces bien, encontrarás unas 3 o 4 direcciones, cuando tienes poquitas direcciones puedes probar a modificar una de ellas y ver si realmente has acertado. En el caso de éste juego, la variable de "vida" es un valor comprendido entre 0 y 1000, así que en el caso de la foto es el valor 584 (001D1026), los otros valores son variables internas que utiliza el control gráfico de la barra roja. Hacemos doble click en la dirección para mandarla abajo, cambiamos la descripción para poder identificarla sin problema y cambiamos su valor a 1000 haciendo doble click en value, volvemos al juego y pulsamos a recibir daño para comprobar si funciona.


Como verás, la vida vuelve a 1000 y sigue decreciendo. Si quisieras "trucar" la vida puedes marcar la casilla como ya vimos en el tutorial n1 con el tiempo, haz la prueba, marca la casilla para hacer freeze a la variable y vuelve a desmarcarla.

Ahora te enseñaré a usar el Debugger para trabajar con una dirección encontrada. Hacemos click derecho en la variable y pulsamos "Find out what writes to this address"


Aparecerá un mensaje de advertencia, básicamente nos avisa que el debugger de CE se acoplará al proceso, pulsamos YES y aparecerá la ventana del debugger



A simple vista el debugger parece simple e inútil, pero no lo subestimes, es MUY poderoso :) Éste debugger funciona un tanto diferente, ya que solo debuggea la dirección de memoria que hemos pulsado, ignorando cualquier otra zona de código que se ejecute, así que volvemos al juego y pulsamos en recibir daño, inmediatamente en el debugger a parecerá lo siguiente:


Aquí aparecen varias caso, las explicaré paso a paso. En la parte superior, aparece la dirección que se ha ejecutado 72A35F52, los bytes que se han ejecutado 66 86 01 y su traducción en ASM instructions mov [ecx],ax. A la izquierda del todo hay un contador que indica el número de veces que se ha ejecutado dicha instrucción, en mi caso he pulsado el botón de recibir daño 6 veces. En la parte inferior aparece un detalle de las instrucciones ASM ejecutadas (la instrucción exacta aparece señalada bajo <<) y el estado de los registros EAX, EBX, ECX, etc...

Si pulsamos doble click en la instrucción de la ventana superior (o marcamos la instrucción y pulsamos en More Information) aparece el mismo detalle en una ventana, dicha ventana acepta copy/paste para tomar notas. Ademas debajo del botón nos "traduce" al inglés lo que hace dicha instrucción, en éste caso mov es un copy memory :D


Vamos a investigar que nos ha devuelto CE, os copio el resultado de mi debugger:

72A35F49 - 8B 4C 24 04  - mov ecx,[esp+04]
72A35F4D - 66 8B 44 24 08  - mov ax,[esp+08]
72A35F52 - 66 89 01  - mov [ecx],ax <<
72A35F55 - 33 C0  - xor eax,eax
72A35F57 - C2 0800 - ret 0008

EAX=72A101F2
EBX=72A1A274
ECX=001D1026
EDX=00000209
ESI=004144E8
EDI=001D0FF0
ESP=0012F3C4
EBP=0012F49C
EIP=72A35F55


Bueno, lo que ha ejecutado en un mov [ecx],ax  mirando los registros, ECX es 001D1026, es la dirección de mi vida! Lo que hace la instrucción es copiar un valor en dicha dirección, el valor es ax pero... ¿que es ax? Si miramos el registro EAX=72A101F2, AX es la parte del final 1F2, en resumen:

mov [ecx],ax mueve 1F2 (498) a la dirección de la vida, realmente el debugger nos ha mostrado EXACTAMENTE la instrucción correcta que escribe en nuestra vida. Ahora lo que podemos hacer es nopear la instrucción, CE permite hacer ésta tarea de forma muy fácil. Marcamos la instrucción en la ventana del debugger y pulsamos en Replace.


Para ser un poco ordenados, escribimos lo que hace nuestro replace: Invencible


Y ahora cerramos el debugger (pulsamos en Stop y luego Close). Volvemos al juego y pulsamos en recibir daño, verás que la vida no se reduce. Si quieres deshabilitar el truco de Invencible pulsa en Advanced Options (está situado en la parte inferior del CE)



Haciendo click derecho en Invencible, podrás restaurar el código original o volverlo a nopear.




Bueno, pues hasta aquí el paso nº2, intenta realizar todos los pasos, aprendelos y comprende cada opción que te he enseñado, al finalizar éste tutorial habrás aprendido:


  • Buscar valores desconocidos
  • Buscar valores usando Decrease e Increase
  • Acoplar el debugger a una dirección de memória
  • Usar el debugger y la información que nos muestra
  • Nopear una instrucción con Replace
  • Usar el CodeList (Advanced Options) para manejar los nopeos

Ahora solo falat terminar el paso 3 del tutorial, donde os enseñaré a usar el Debugger de CE a fondo y finalmente inyectar código ASM, crear script's y trainers.

Nos vemos en la próxima entrega, saludos!! :D
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

Mad Antrax

#2
Bueno, aquí está la tercera y última parte de mi tutorial, ésta parte va a ser algo extensa ya que intentaré hablar sobre muchos temas a la vez, espero que se pueda entender todo. Para ello utilizareoms un nuevo "juego" a modo de ejemplo llamado MoneyBag:


DOWNLOAD MONEYBAG: http://www.mediafire.com/?hat2ts8d3por4a7


  • Inyección de código (creación de script's en Auto Assemble)
  • Creación de un Trainer funcional
  • Dissect Window
  • Modificar código Ensamblador

Al finalizar os daré un ejemplo real, usaremos un videojuego real y os enseñaré como "hackearlo" y crear un Trainer funcional.

Primero de todo nos descargamos el nuevo juego llamado MoneyBag, lo he programado yo mismo usando VB6, el juego es muy sencillo y simula una función muy típica en cualquier juego: El dinero. He intentado programarlo de la forma más sencilla posible.

El juego empieza con 1750 monedas, el único botón que hay sirve para gastar el dinero, cada vez que lo pulses gastará 5 monedas. Nuestro principal objetivo será modificar el programa para que el dinero aumente en lugar de decrecer cada vez que pulsemos el botón (inyección de código).

Bueno, empezaremos con lo más sencillo, abrir el juego y CE, buscar la dirección que almacena el dinero. Como pista os diré que el dinero es del tipo byte-2, pero si no estáis seguros podéis configurar la búsqueda en All, os dejo un pantallazo:


Como podéis observar, ya he encontrado la dirección correcta y la he pasado a la parte inferior, he cambiado la descripción para no equivocarme. Una vez que tenéis la dirección en la parte inferior, podéis cambiar el valor manualmente haciendo click con el ratón y apretando la tecla "Enter", el valor cambiado se verá reflejado automáticamente en el juego.

Ahora hazemos click derecho en la dirección y seleccionamos "Find out what writes to this address", aceptamos el mensaje de advertencia y se nos abrirá la ventana del debugger, dicha ventana estará en blanco



Volvemos al juego y pulsamos "Gastar Dinero", el dinero decrecerá y en nuestra ventana aparecerá la sección de código que ha modificado nuestra dirección llamada "DINERO"


00402C10 - 0F80 D6000000 - jo moneybag_tutorial.exe+2CEC
00402C16 - 66 3B C7  - cmp ax,di
00402C19 - 66 89 46 34  - mov [esi+34],ax <<
00402C1D - 7F 04 - jg moneybag_tutorial.exe+2C23
00402C1F - 66 89 7E 34  - mov [esi+34],di

EAX=000006CC
EBX=0000000A
ECX=0012000A
EDX=00000003
ESI=00615F20
EDI=00000000
ESP=0012F4F0
EBP=0012F5A4
EIP=00402C1D


Como podemos observar, el código mueve el valor ax=6CC a la variable (ésto ya lo vimos en la parte 2), ahora lo que haremos es pulsar el botón "Show Dissambler", se nos abrirá la ventana Memory View:


Aquí empieza lo serio (y divertido) de Cheat Engine, de forma automática, CE nos muestra la zóna que ha modificado nuestro dinero mov [esi+34],ax. Vamos directamente a Tools/Auto Assemble (puedes pulsar Ctrl+A para ir más rápido) y se abrirá la ventana de creación de script's en Auto Assemble (a partir de ahora lo llamaré AA):


La ventana está en blanco, pero por suerte CE tiene un sistema de plantillas que nos evitará escribir el script, usaremos 2 plantillas: La de inyección de código y la de Cheat Table


  • Template Cheat Table: Nos añade las secciones [ENABLE] y [DISABLE] para la creación de un script
  • Template Code Inject: Nos añade el código original para poder ser modificado (inyectado)

Para usar las plantillas correctamente has de añadir primero una y luego la otra, en el mismo orden que te indico, no lo hagas al revés! Empezamos con el menú: Template/Cheat Table framework code, aparecerá ésto:


Una vez que tenemos el Cheat Table puesto, añadimos la última plantilla: Template/Code Injection. Nos aparecerá un mensaje:


Ésta ventana nos pregunta la dirección del salto, aceptamos el valor que nos muestra por defecto: pulsamos Ok y el código se completa:


Una vez que ya tenemos las 2 plantillas insertadas, guardaremos el script en nuestro CE, para ello pulsamos el menú: File/Assign to current cheat table y cerramos la ventana de "Auto Asemble", NO pulses el botón "Execute", simplemente cierra la ventana pulsando la [X], vuelve a la ventana principal de CE, debería estar así:


Se ha creado una nueva entrada en la parte interior que contiene nuestro AA script, hazemos doble-click encima de <script> para abrir la ventana del AA y poder modificarlo:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov [esi+34],ax
jg moneybag_tutorial.exe+2C23

exit:
jmp returnhere

"moneybag_tutorial.exe"+2C19:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"moneybag_tutorial.exe"+2C19:
mov [esi+34],ax
jg moneybag_tutorial.exe+2C23
//Alt: db 66 89 46 34 7F 04


La primera parte de [ENABLE] será el código que se ejecute cuendo activemos el script, cuando desactivemos el script se ejecutará la sección [DISABLE] que contiene el código original, así que nos centraremos siempre en modificar la sección [ENABLE], en mi caso he realizado el siguiente cambio:

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
add ax,A
mov [esi+34],ax
jg moneybag_tutorial.exe+2C23

exit:
jmp returnhere

"moneybag_tutorial.exe"+2C19:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"moneybag_tutorial.exe"+2C19:
mov [esi+34],ax
jg moneybag_tutorial.exe+2C23
//Alt: db 66 89 46 34 7F 04


Como puedes observar, he añadido un add ax,A justo antes del mov, eso hará que el dinero aumente en 5 en lugar de disminuir. Recuerda que cuando pulsamos el botón, el programa resta 5 y lo muestra, con mi modificación el programa restará 5, luego sumará 10 y en total es como si sumase 5 :D Pulsamos OK para aceptar y cerrar la ventana del AA y volver a la ventana del CE, marcamos el script para activarlo y volvemos al "juego", pulsamos el botón de "Gastar Dinero" y verás como nuestro código se ha inyectado correctamente:



El programa detecta si el dinero aumenta y lo muestra en rojo, eso significa que lo has hecho bien. Si deshabilitas el script, CE ejecutará la sección [DISABLE] que contiene el código original, de tal modo que el dinero irá decreciendo. Con un simple click puedes inyectar el add ax,A de una forma MUY sencilla y practica.




Ahora vamos al siguiente paso, creación de un trainer. Un trainer es un programa ejecutable que permite hacer trampas o "hacks" sobre un juego de forma automática, normalmente con el uso de hotkeys. CE tiene un sistema para generar trainers de forma sencilla, lo primero es tener el script en AA funcionando correctamente. En la ventana principal de CE pulsamos menú: File/Generate generic trainer lua script from table



La primera ventana es para crear el trainer y la segunda nos muestra la GUI del trainer, pulsamos "Add Hotkey" en la primera ventana para añadir una tecla automática a nuestro AA script. Nos pedirá que seleccionemos el item de nuestra table que queremos "trabajar", así que seleccionamos el "Auto Assemble script"


Al pulsar nos aparece la ventana del Hotkey:


En el primer recuadro pulsamos directamente la tecla que queremos usar, en mi caso la letra "Q", abajo seleccionamos la acción que realizará la letra "Q" así que lo dejamos en "Toggle script", en la descripción ponemos por ejemplo: "Hackear Dinero"


Pulsamos "OK" para volver a la ventana anterior, aquí podemos personalizar un poco el trainer, poniendo una foto, personalizar el título, mensaje del "About", etc... te dejo que inspecciones. Si eres programador y te manejas con el IDE puedes probar a usar la opción "Design userinterface manually" (solo para expertos), una vez finalizado pulsamos en "Generate Trainer (EXE)" e indicamos el nombre y ubicación de nuestro trainer, aparecerá la siguiente ventana:


Aquí lo único que debéis saber es la diferencia entre crear el trainer Gigantic o Tiny, la versión Gigantic ocupará bastante (unos 3 MB) y la Tiny ocupara unos pocos bytes (50 KB), la diferencia será que para la versión tiny, el usuario necesitará tener instalado CE en su PC, la gigantic es completamente stand-alone. En nuestro caso nos da igual, así que puedes usar Tiny si te apetece. Una vez generado, puedes cerrar por completo el CE y el juego, ya tendrás tu trainer:


Para probarlo, abre de nuevo el juego MoneyBag, y con el trainer ejecutado, pulsa tu tecla de hotkey "Q", verás como el trainer se ilumina indicando que el script se ha inyectado, prueba a usar el MoneyBag y verás que el dinero aumenta!! Vuelve a pulsar "Q" para descativar el script y el juego volverá a la normalidad.

Con un poco de programaciones se pueden crear trainers muy vistosos como hacen los principales grupos Paradox, Theta, BlackxXx, etc...


Éste lo creé yo usando CE + Visual Basic 6, pero aquí ya entraríamos en temas de programación y no lo voy a explicar en éste sub-foro
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

tincopasan

Está bueno para los que recién comienzan! y viendo lo que agregarías te diré que creo te falta poner como llegar a los pointers y a los pointers de pointers jeje que así vienen la mayoría de juegos nuevos. Excelente trabajo!

fary

Esta bien el tutorial!   ;D

Solo unas cosillas:

-Es recomendable poner el tipo de valor que buscas para que funcione mejor el programa  :rolleyes:

-Ya que tu usas siempre VB6 me imagino que tambien lo usarás para la "inyeccion de código", que no se puede hacer con VB6 por lo tanto sería mas bien modificar valores con WriteProcessMemory, no?

un saludo!

Un byte a la izquierda.

MeTaD

excelente hermano, ¡hacía falta algo tan detallado como esto! ¡me encanta!,
¿Esto funcionaría para juegos programados en vb.net?
quedo a la espera de las otras partes! un abrazo.

syntax00r

Muchisimas gracias buen tuto men<3

No puedo esperar al proximo ;-)

gonzalo57

Me encanta tu tutorial es la .... muchas gracias siempre me interesé por este tipo de cosas y truquear juegos etc...

Muchisimas gracias me ayudaste mucho :D!! 2 tuto 2 tutoooo!!!!!!!!!!!!!
@echo off
title Gonzalo57
color 5a
echo Estoy aprendiendo Batch :3
echo.
pause
cls
echo un saludo elhacker.net :)
pause > nul

Martin-Ph03n1X

  No eres tu trabajo, no eres cuanto tienes en el banco, no eres el auto que conduces, ni el contenido en tu billetera, no eres tus malditos cakis, eres el bailarin cantante del mundo...!!!"

Mad Antrax

Cita de: gonzalo57 en  5 Febrero 2013, 15:29 PM
Me encanta tu tutorial es la .... muchas gracias siempre me interesé por este tipo de cosas y truquear juegos etc...

Muchisimas gracias me ayudaste mucho :D!! 2 tuto 2 tutoooo!!!!!!!!!!!!!

Gracias :D

Cita de: Martin-Ph03n1X en  6 Febrero 2013, 02:10 AM
mad antrax estabas desaparecido donde esta tu blog?

Estaba de vacaciones :D




Acabo de terminar la parte 2 del tutorial, en ella aprenderéis a:


  • Buscar valores desconocidos
  • Buscar valores usando Decrease e Increase
  • Acoplar el debugger a una dirección de memória
  • Usar el debugger y la información que nos muestra
  • Nopear una instrucción con Replace
  • Usar el CodeList (Advanced Options) para manejar los nopeos

Espero que os sirva, intentad hacer el tutorial paso a paso y postear aquí las dudas, que veo poca participación!! :(
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.