[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 2 Visitantes están viendo este tema.

infraud

Gracias tio Mad por responder

El ejemplo si lo entendi pero lo de breakpoint on access, no   ;D
Probare de todos modos en las direcciones que resulten a ver cual es
solo espero entender lo que tenga escrito,
ademas que siempre aparecen bastantes

Seguire usando el increased value
y agradezco cualquier otra ayuda :D

Mad Antrax

Cita de: infraud en 10 Septiembre 2015, 16:55 PM
Gracias tio Mad por responder

El ejemplo si lo entendi pero lo de breakpoint on access, no   ;D
Probare de todos modos en las direcciones que resulten a ver cual es
solo espero entender lo que tenga escrito,
ademas que siempre aparecen bastantes

Seguire usando el increased value
y agradezco cualquier otra ayuda :D

Entiendo entonces que te faltan algunos conceptos previos para poder completar lo que te propones... Cuando encuentres la variable del tiempo, le das doble-click para añadirla a la ventana inferior, selecciona el address y pulsa F5, activarás el debugger de CE, vuelve al juego y tras unos segundos el debugger te enseñará los opcodes que han accedido a tu address. Ahí podrás saltar al memory view, inspeccionar las instrucciones ASM y reversar el código hasta encontrar la rutina que calcula el valor real del tiempo.

Por la forma en la qu ete has expresado y las preguntas que has hecho doy por sentado que careces de esos conceptos básicos de ASM y reversing. Así que te tocará leer en lugar de empezar la casa por el tejado :)

Lo siento.
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

infraud

#252
Pos me voy a poner a ello,
a ver si logro captar algo

ASM y reversing cierto?

PD: por cierto cuando le doy a primer scan, con unknown initial value y en valye type: all
no me sale nada, ahi si como hago para encontrar la del tiempo si la que muestra en pantalla no sirven

Mad Antrax

Cita de: infraud en 10 Septiembre 2015, 17:16 PM
Pos me voy a poner a ello,
a ver si logro captar algo

ASM y reversing cierto?

PD: por cierto cuando le doy a primer scan, con unknown initial value y en valye type: all
no me sale nada, ahi si como hago para encontrar la del tiempo si la que muestra en pantalla no sirven

Partiendo de la base en que puedes encontrar la dirección visual del tiempo, utiliza la opción F5, los opcodes que accedan a ella estarán muy cerca de la dirección del tiempo real.

Puedes tambien intentar adivinar el método utilizado para almacenar el timepo en memoria, la mayoría de juegos lo hace en segundos, es decir:

Si tienes un juego que marca la hora 09:34:15 am su equivalente en segundos es 34440

EDIT, intenta completar el siguiente tutorial, que es más completo: http://foro.elhacker.net/ingenieria_inversa/tutorial_cheat_engine_nivel_avanzado_tutorial_completo-t413372.0.html
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.

infraud

hmm si voy a intentar en segundos

Use el debuger en las tres direcciones que me salen pero con el tiempo que se pinta en pantalla, no me salio nada con F5 asi que lo hice como decias en una parte de esta guia, tras dejar correr el juego unos segundos, se capto otra "cosa" y al meterme en ello aparecieron cientos de numeros y letras en secciones, hasta ahi llegue

Vere el tutorial avanzado... avanzado?

quesudoqueso

hola que tal, eh intentado bastante tiempo poder hackear un juego pero no eh podido...........quisiera saber si lo prodrias hacer, para vos seria pan comido jajja el juego es tiny toons acme all star de sega genesis con emulador obviamente.....es un juego que trae deportes en especial el football......si te fijas en el juego cada personaje tiene una barra de energia que se gasta al realizar un movimiento especial, yo solo e detectado la direccion del valor y la cambie visualmente...pero no puedo hacer que no decresca PD: el valor maximo de energia es 24...es el maximo de cada player!!! por favor ayudame :D

engel lex

que sea pan comido no quiere decir que te lo tenga que hacer de gratis... si lo quieres hazlo tu, aquí se te ayuda, el fin de este foro es aprendizaje...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Machacador

He hecho todo como dice aquí en muchos otros tutoriales, y no he podido tener un millón de Euros en "Euro Truck Simulator 2"... tendré que seguir llevando cargas para poder ganar dinero y tener mi propia empresa de camiones...

Uff... que pesadas están las carreteras!!!... jejejejeeeeee...
"Solo tu perro puede admirarte mas de lo que tu te admiras a ti mismo"

Isiparate

#258
Cita de: Machacador en  2 Noviembre 2015, 12:34 PM
He hecho todo como dice aquí en muchos otros tutoriales, y no he podido tener un millón de Euros en "Euro Truck Simulator 2"... tendré que seguir llevando cargas para poder ganar dinero y tener mi propia empresa de camiones...

Uff... que pesadas están las carreteras!!!... jejejejeeeeee...
El Euro Truck Simulator 2 usa conexión a internet constantemente, no recuerdo si necesitas internet para jugar pero era algo así, es posible que guarde alguna variable en el server. ¿Has probado a hacerlo sin conexión a internet?




Antes que nada quiero felicitarte por el tutorial, por el tiempo invertido en responder a los que han expuesto sus dudas y tal. También quiero avisar de que me voy a extender un poco (tranquilos tampoco voy a escribir la biblia jaja) y de que, como he leído en las últimas páginas, estoy intentado empezar la casa por el tejado ya que carezco de conocimientos básicos de ASM y de muchas otras cosas que comentáis por akí (i.e. dumpear, opcodes, offset... cosas que no entiendo o no se lo que son) pero como me he dado cuenta tarde de que iba a necesitar más conocimientos de los que kreía y he empezado, voy a exponer lo que quiero hacer y hasta donde he llegado y volveré a hacer un inciso en esto:

EDIT: A los que leáis esto con intención de resolverme dudas y ayudarme: Antes que nada gracias, ;D me he extendido más de lo que quería en un principio con este post para evitar dobles posteos y tal (sigue sin ser la biblia tranquilos xd), así que para ahorraros algo de tiempo os aconsejo que primero lo leais todo (ya que algunas dudas que tengo al principio las acabo resolviendo yo solo). Espero que esto os sirva de algo y también espero que todas las dudas y preguntas que posteo ayuden a mejorar el tutorial o al contestarlas resuelvan también las dudas que puedan tener otros.

Bien, lo que quiero es hacer un trainer para el FlatOut, el primero, para este a diferencia de los siguientes juegos de la saga no hay ningún trainer hecho, por lo menos que yo haya encontrado, tampoco he buscado mucho porque no me interesa un trainer hecho (la cosa es que al no haber trainers no hay información sobre como modificar/encontrar algunos valores complicados), el juego ya me lo pasé al 100% de forma legal y ahora lo que quería era explorar más el juego, coches con mucha potencia por ejemplo etc...
El CE ya lo había utilizado alguna vez para encontrar y cambiar valores, en eso no tengo problema, pero no sabía es que hay que meterse al lio para que cada vez que abras el juego puedas cambiar valores, es decir, yo lo abría, buscaba el valor lo cambiaba y cada vez que lo quería volver a alterar lo volvía a buscar, me iba bien en la ignorancia hasta que me he topado con valores más complicados de encontrar (más que lo típico que suele ser la vida, maná, dinero...) y me decidí a buscar un tutorial más general sobre el uso del CE en vez de buscar uno especifico de como usarlo en mi juego.

Algunos de los valores que estuve tocando o quería cambiar son:
El dinero: este lo encuentro fácil no tengo problemas mas que los que expondré luego que son básicamente con lo de que cambian las address cada vez que ejecuto el juego.
La potencia: este no sabía como dar con el pero después de leer el tutorial ya se como buscarlo.
La velocidad: este estuve intentando hallar el value antes de ver este tuto y probe en kph, en mph, en ms... jajaja al final gracias al tuto logré dar con una variable que afectaba a la velocidad, el problema es que en este juego (en otros creo que no es igual) la velocidad no es value real si no que solo se muestra en pantalla, no me refiero a que solo modifico el valor que esta en la pantalla si no a que no hay un solo valor que sea la velocidad sino que depende de varios factores que forman la velocidad y hay un vlaue que la muestra, he llegado a esta conclusión porque la vez que más me acerqué a un valor que afectara a la velocidad fue cuando dí con un valor de 10 cifras que si lo aumentaba hacía que una de las ruedas empezara a girar, quemaba rueda básicamente (solo una porque creo que influye lo mejorado que tengas el coche, neumáticos, transmisión... y las pruebas las hice con un coche básico sin modificar) y conseguía alcanzar una velocidad máx mucho mayor y mucho más rápido (es decir no era poner un value de speed y instantaneamente me ponía a esa velocidad), esté ultimo valor es el que más estuve trabajando pero como no se utilizar bien los pointers ni los AAsripts perdía el valor cada vez que iniciaba el juego o lo crasheaba haciendo pruebas, se como usarlos, porque está en el tutorial, pero como no lo entiendo no estaba cómodo y no podía controlar bien lo que hacía me decidí por empezar por algo más básico y que no me llevara más de 5 minutos encontrar el value para poder hacer pruebas y ir entendiendolo poco a poco, el dinero.
Como anécdota curiosa, no lo he comprobado, pero creo que hay dos values de dinero, uno que controla todas las cifras menos las dos últimas y otro que controla estas dos últimas, lo digo porque de repente no encontraba el dienro con exact value y me estaba volviendo loco porque antes no me pasaba, siempre aparecía, así que lo busque con unknown/increse/decrese value y dí con lo que digo, un value que era el dinero pero las dos últimas cifras eran 00 (en el juego en ese momento tenía xxxxxxxx44), no le dí más importancia en ese momento para centrarme en lo que me trae más de culo (volvedme a perdonar que me extienda tanto pero es que no se muy bien como explicarlo de forma clara).

Paso a explicar lo que hice, encontré el valor y cree un AAscript, esto mismo también lo hice con lo que comentaba de la velocidad pero no sabía que poner en el script ya que realmente no quería que hiciera nada, solo que "recordara" (más bien buscara) el address para poder seguir experimentando con ese value sin tener que buscarlo cada vez que iniciara el juego. Como no entendía el funcionamiento al final lo borré y he seguido con el dinero.

Ok, sigamos, resumo: hallo el valor, lo bajo, buco que escribe en esa address (addr. a partir de ahora), voy al juego muevo el dinero y obtengo una instrucción y a partir de esta instrucción creo un script con inyección de código que ahora pondré, compruebo que funciona y reinicio el juego.
Ahora la address que tenía abajo con el valor del dinero ya no muestra nada (ha cambiado), el script sigue funcionando así que lo he hecho bien, como a partir del script no sé encontrar la addr. para poder ver y modificar ese valor en tiempo real la vuelvo a buscar (akí el proceso y algunas de mis dudas resumidas en una foto):

Hay muchas preguntas y muchas cosas que no entiendo, pero no espero que me lo expliquéis todo, al final comentaré esto un poco.

(Por cierto a ver si me podéis ayudar brevemente ¿como hago para que la imagen quede cuadrada? ¿y donde la puedo subir para que se vea bien y no se borre al tiempo o se cambie por otra? es que he visto que muchas fotos dejan de estar disponibles, se caen o aparecen otras sin sentido, está la he subido a Imgur, no quiero desviar el tema comentadme por mp o lo que sea y cuando lo tenga claro borraré este parentesis).

*Si esta linea fuera por ej.: 06590004 querría decir que el juego usa memoria relativa y solo funcionaría el trainer en mi PC ¿no? Para que funcionara en todos habría que hacer un AOBScan para hayar la dirección correcta. Esto es lo que he entendido pero me surgen dudas que me gustaría aclarar para ir más suelto:
¿Que es exactamente esta línea? en este caso "flatout.exe" es el proceso ¿y +4DB55? ¿Es un pointer de esos?
Me lio mucho con lo de las direcciones y los pointers y tal. ¿Sería xxxxxxxxx (direción en la que ejecuta el proceso ¿En este caso sería 00000B 3C?) + 4DB55 = yyyyyyyy (¿Que sería esta dirección?)

**Aunque mi intención era que al pulsar un botón se añadieran 50000, ha sido un fallo de novato por no entender Assemble ni mucho hex, creo que lo que intentaba hacer sería substituyendo el código "mov [esi+74],C350" o "mov [esi+74],ecx" por "add [esi+74],C350" lo cual haría que al ejecutar el script con una hotkey diera la instrucción de ¿comprar? (no se si haría esto o directamente inyectaría el código, o es que "la instrucción" es la acción de inyectarlo, esto no lo entiendo mucho pero sigo) pero en vez del código normal usaría "add [esi+74],C350" y me añadiría 50000 ¿correcto? Seguro que hay formas más simples de hacerlo pero de momento no se como encontrar la address del dinero cada vez que inicio el juego (creo que es eso de los pointers pero no lo entiendo), creo que podría obtener la addr. cada vez que inicia el juego con un pointer y poder añadir en el trainer una hotkey para incrementar 50000 a ese valor, pero no se si funciona así... xd

***Se que esto es básico pero no lo acabo de comprender por más que leo y releo el tuto (aunque conforme voy leyendo páginas y releyendo voy entendiendo más) ¿Como puedo obtener la address del dinero directamente cada vez que inicio el juego? Es decir, se que se almacena en esi+74 ¿pero como obtengo el address para buscarla ver el value y hacer lo que quiera sin tener que complicarme tanto con Sripts y tal? Es decir, nada más ejecutar el juego es posible obtener la addr. que busco con la información que tengo, para poder probar cosas y tal. O si ya la tengo ¿como la puedo comprobar y modificar sin tener que inyectar códigos y eso? Espero que me entendáis porque esto es lo que más me está costando y me cuesta explicarme jajaja creo que si logro comprender esto doy un paso muy grande porque es de lo que más me frena...

Acabando, vuelvo a lo que he comentado brevemente un par de veces:
No se si debería meterme en el fregao de aprender ASM, auto-assembler y todo eso, cuando lo único que quiero es encontrar un valor (esto sé), cambiarlo y que cuando vuelva a iniciar el juego pueda seguir alterando ese valor. A partir de aquí tengo más o menos claro como continuar, codes, trainers... Eso creo que lo he entendido y cosas algo más complejas, me quiero explicar, no es que lo tenga todo claro pero en estos caso más complejos como por ejemplo el de que una instrucción se aplica a varias addr. (no se si esta bien dicho así, me refiero a lo de nopear tu daño y que el nopeo afecte a tus enemigos también), al ser contratiempos eventuales no me interesa (por lo menos de momento) comprender como funcionan para solucionarlos, me bastaría con saber hacerlo, recordar los pasos y saber "un poco" lo que he hecho. Un ejemplo de lo que quiero decir es que ya se como hackear el dinero, se como obtener los valores y hacer un script básico o nopear una instrucción, lo que hay en el tutorial más o menos se como hacerlo pero no acabo de comprender lo que estoy haciendo, me gustaría ir más suelto y poder hacer un trainer más a mi gusto, por ej en un tutorial nos enseñaba a nopear, podría nopear la instrucción de gastar dinero y sería como tener dinero infinito, pero no es exactamente eso lo que quiero, en otra nos enseña a inyectar un código para que en vez que gastar dinero nos lo sume, pero yo lo que quiero es tener más soltura para poder hacer lo que quiera, por ejemplo: [hotkey] sumar 50000 [hotkey] congelar el dinero [hotkey] set 100000 (poner el dinero en 100.000 sin alterar nada más, sin hacer freeze ni cambiar cosas básicas del juego como que al comprar se gaste dinero en ver de darte más, solo como si fuera un truco, luego ya si quiero congelar o hacer alguna movida "más compleja" pues con otra hotkey o otro script), además de modificar valores algo más complejos como la velocidad, la potencia y algún valor más... Espero que podáis entender lo que quiero decir y me ayudéis a encontrar lo que necesito saber, que me lo expliquéis o me digáis que tengo que aprender o sobre que tengo que leer algo, tampoco me gustaría ahora verme forzado a invertir horas en aprender lenguajes o cosas que apenas necesito. Para remarcar, lo que quería era simplemente alterar valores para divertirme, hacerlo en un día o dos invirtiendo unas 10h o algo así, habiendo comprendido es un poco más complejo de lo que esperaba me propongo invertir horas para obtener unos conocimientos básicos que me permitan modificar cosillas de este u otros juegos libremente, sabiendo un poco lo que estoy tocando y crear algún trainer pero lo justo para esto, que no se cuanto es. xd

Por último, haciendo el tutorial del cheat engine me quede atrapado en lo de los pointers , es complicado, porque no me quede atrapado porque no me lo podía pasar si no porque no comprendía el funcionamiento, pasarmelo me lo pasé, es fácil solo seguir los pasos pero... a ver si hay algo que no he entendido, voy a volverlo a hacer y os postearé las dudas que me vayan saliendo.

Gracias de antemano Mad Antrax eres un jefe! Salu2

PD: Siento no ponerlo todo tan estructurado como hacéis algunos con negrita y colores y tal pero no se como se hace y no me apetece ponerme a aprender BBCode también que batante liado ando con esto y otras cosillas jajaja Llevo todo el día preparando esto para intentar que se entienda y no dejarme nada, y ahora se viene toda la noche seguramente para preparar lo del tuto del CE  :-( . jajaja espero con ansias vuestras respuestas!




Uff al final este post si que va a ser largo por eso de evitar el doble post pero mejor así jajaja
A lo largo de la noche he completado el tutorial del CE que propuso Mad Antrax, hasta el "Step 7: Code Injection" de momento...
A modo de repaso y ejercicios he hecho algunas capturas y he ido escribiendo sobre ellas dudas que me han ido surgiendo, cosas que no entendía, preguntas y también lo que creo que he entendido, como me ha llevado largo comprenderlo y prepararlo hay cosas que he escrito como dudas o preguntas y que luego yo mismo me he contestado al ir comprendiendo cosas sobre la marcha. Lo que pido es que respondáis a las preguntas o dudas y corrijáis mis afirmaciones si no son correctas, también para el "post anterior" (arriba de la linea separatoria) pero como ya puse no pido que me expliquéis cosas muy básicas de otros temas (tampoco pido que no me los expliquéis eh jaja si tenéis tiempo y ganas...) ni que me respondais a todas las dudas o preguntas porque para vosotros la mayoría seguro que son tonterías o cosas básicas que debería saber, no quiero desviar el post ni nada pero si que me aclaréis dentro de lo posible las dudas que tengo, aunque sea solo diciendome lo que tengo que aprende o que tengo que buscar para leer sobre algo que me resuelva la duda (esto me da un poco de palo porque no quiero invertir "demasiadas" horas en esto pero bueno, si no me dedicaría yo a indagar y leer para resolver duda por duda, aprendería ASM y tal, pero como no me apetece xd recurro al foro y a vuestra sabiduría, espero que me podáis ayudar). Paso a postearlas:







Esta es en la que más me extiendo y es con la que más me lio así que voy a intentar aclarar un par de cosillas :P : Cuando hablo de "Value" hago referencia a la linea que tiene como descripción Value. Cuando hablo de Value hago referencia al value (es decir, valor o cantidad, generico). Y cuando hablo de "value" me refiero a el valor final que es el que nos muestra el "juego". Por ejemplo: Añadiendo 500 de Value a "Value" sumamos 500 de "value", traducido a algo normal sería: Añadiendo 500 de value a "Vida" sumamos 500HP.


Hacer esto me ha ayudado a desenvolverme mejor con CE, tengo ganas de acabar el tutorial y ver que puedo hacer en el FlatOut. Anoche, de perdidos al río empecé el Step 7: Code Injection, porque ya se hacerlo y pensaba que no me costaría, pero lo dejé para hoy porque ya me salieron un par de dudas.  ;D

El procedimiento para inyectar código lo explica de manera diferente en el tutorial de Mad Antrax y en el de CE, a ver si alguien nos aclara las diferencias entre usar un método u otro y cual es el "mejor" proceso; voy a enumerar a grandes rasgos las dos diferencias principales:

1. El tutorial del CE cuando creamos AA dice que le demos a "Code injection" directamente en vez de darle primero a "Cheat Table framework code", en el tutorial Mad Antrax recalca que sigamos un orden: primero a "Cheat Table framework code" y luego a "Code injection". Según he comprobado esto es porque si los haces en orden contrario la parte de [DISABLE] queda vacía (y por lo tanto no se podría desactivar el script ¿cierto?). (Ya que estamos, mi nivel de inglés es el justo, en el tutorial explica un poco las lineas del AA y dice que "alloc" asigna un bloque de memoria para nuestro "code cave" ¿Que quiere decir esto? Pone que antes de w2000 había que encontrar "code caves" en regiones de memoria que no usara el juego, "and will these days cause errors when trying to be used" debido a SP2de XP y los NX bit de los nuevos CPU's. No entiendo bien esa frase ¿Pueden causar errores intentando ser usados? ¿El que? En fin, este paréntesis os lo podéis ahorrar de contestar si no tenéis ganas xd)

2. En el tutorial del CE dice que pongamos el código que queremos inyectar debajo de "newmem:", donde está el texto, en vez de debajo de "originalcode:" ¿Esto hace que cambie algo? También recomiendan borrar la linea que hace que disminuya tu vida, o hacer que aumente en 3 puntos tu vida (el code original te quita uno y el objetivo del tuto es que suba 2 puntos tu vida) eso último es similar a lo que hace Mad Antrax en su tuto, esto hace que me surja una duda: el original code es "dec [ebx+00000478]" ¿no sería lo más fácil substituir esa linea por "add [ebx+00000478],2" (es lo que he hecho yo para pasar el tuto)? Concluyendo, de la forma que explica el tutorial del CE ¿se podría activar y desactivar el cheat? Sin usar "Cheat Table framework code", ¿o solo en caso de que usaramos "add [ebx+00000478],3" debajo de "newmem:" y dejaramos "originalcode:" sin tocar?

Otra cosa, como he dicho para completar el tutorial he subtituido "dec [ebx+00000478]" por "add [ebx+00000478],2" y ahora cuando veo que es lo que escribe la addr del value me aparece esta instrucción "add dword ptr [ebx+00000478],02" ¿Por que aparecen "dword" y "ptr"? Esto aparecía también en algunas instucciones del FlatOut y busque muy por encima que significaban (para saber como editarlo), pero poco entendí de lo que encontré así os agradecería que me explicarais brevemente que son y sobre todo por que aparecen de repente. (A unas malas que me paséis algo para leer, aunque como digo ya leí algo pero como tampoco lo entendía mucho y no es importante lo dejé estar)


Acabando, me haríais un gran favor si me explicarais este punto:
Citar
Notice 2:
In some games the original code can exist out of multiple instructions, and sometimes, not always, it might happen that a code at another place jumps into your jump instruction end will then cause unknown behavior. If that happens, you should usually look near that instruction and see the jumps and fix it, or perhaps even choose to use a different address to do the code injection from. As long as you're able to figure out the address to change from inside your injected code.
Porque por ejemplo el código del dinero del FlatOut estaba compuesto de 2 instrucciones (no se si se refieren a eso), y lo de los saltos no lo entiendo muy bien pero bueno porke no entiendo el idioma (ASM), se refiere a que una instrucción puede saltar a tu código y modificarlo ¿no? y que para evitar esto habría que buscarlo en el Memory Viewer y "nopear" el salto, o inyectar el código antes del salto ¿Correcto?

Bueno voy a seguir con los dos últimos steps del tutorial "Multilevel pointers" y "Shared code" a ver si me aclaro y cuanto me lleva jajaja con lo que sea ya postearé algo más. De nuevo gracias por vuestro tiempo.
EDITO: Mejor voy a esperar un tiempo a que me respondáis y mientras a ver si encuentro este tutorial si lo llegaste a publicar:
Cita de: Mad Antrax en 23 Abril 2013, 13:57 PM
Para descubrir ese puntero he tenido que usar una herramienta llamada Multi-Level Scan Pointer. Ahora no tengo tiempo para explicarlo, pero mañana os posteo un tutorial para utilizar punteros :)
¡Si no me esperaré a que lo hagas! jaja Mientras a ver que puedo ir aprendiendo sobre todo esto.

Mad Antrax

No había leído esa biblia jajaja. Dame un tiempo que pueda leerlo todo bien y despacio y te respondo a todas tus preguntas, vale? Saludos
No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.