Hola soy Césped. Recién me inicio en el GameHacking y en la programación, en concreto c++ y mi problema ha sido siguiendo el libro "GameHackingAcademy" , en el apartado 2.8.5 en el momento de conseguir el puntero. En el libro lo hacen con el juego "Wesnoth 1.14.9" pero yo en vez de simplemente copiar lo que hacen, quiero aprender a hacerlo, así que lo he intentado hacer en el "Subway Surf". En el libro los pasos que hacen son:
1-Coger la dirección del oro con Cheat Engine.
2-Abrir x64dbg y vincular el juego.
3-Poner un "Breakpoint" en la dirección obtenida en Cheat Engine.
4-Cuando el "Breakpoint" poppea, observan lo que está escrito (foto 1.jpg adjunto).
5-Se fijan en que el valor del oro esta guardado en eax+4.
6-Miran un poco más arriba de donde saltó el "Breakpoint" y se dan cuenta de que hay una instrucción "call" (foto: 1.jpg adjunto).
7-Pone un "Breakpoint" en la instrucción "call" y cuando poppea se fijan en que el valor de eax es 0 haciendo dar por echo que el valor que buscan se guarda en eax (foto: 2.jpg adjunto)
8-Va a la dirección de "call" y encuentra la instrucción "add eax,A90" (foto: 3 zoom.png)
9-A partir de que tiene la dirección que busca ya no me fijo de lo siguiente ya que no he sido capaz de llegar ahí (foto: 4.jpg).
Entonces yo intentándolo en "Subway Surf" llego hasta el paso 5. Uso la dirección de las monedas para asemejarlo al oro. Cuando me salta el "Breakpoint" (foto: mio1.png adjunto) asumo que lo que busco está guardado en esi+34, pero más arriba no me sale ninguna instrucción "call" como pasa en el juego "Wesnoth 1.14.9" y a partir ya de ahí no se como encontrar el puntero que busco.
Perdón si las cosas que escribo no están correctamente escritas, repito acabo de empezar e igual tengo algún concepto mal definido en mi cabeza. Todavía no entiendo el lenguaje ensamblador, pero estoy intentando aprenderlo. Agradecería que me digan qué me queda por hacer para conseguir llegar a donde quiero llegar, o que me digan en qué momento me he perdido y qué debería haber echo para no perderme. Un saludo.
pd: Muy buen libro 9,5/10!
1-Coger la dirección del oro con Cheat Engine.
2-Abrir x64dbg y vincular el juego.
3-Poner un "Breakpoint" en la dirección obtenida en Cheat Engine.
4-Cuando el "Breakpoint" poppea, observan lo que está escrito (foto 1.jpg adjunto).
5-Se fijan en que el valor del oro esta guardado en eax+4.
6-Miran un poco más arriba de donde saltó el "Breakpoint" y se dan cuenta de que hay una instrucción "call" (foto: 1.jpg adjunto).
7-Pone un "Breakpoint" en la instrucción "call" y cuando poppea se fijan en que el valor de eax es 0 haciendo dar por echo que el valor que buscan se guarda en eax (foto: 2.jpg adjunto)
8-Va a la dirección de "call" y encuentra la instrucción "add eax,A90" (foto: 3 zoom.png)
9-A partir de que tiene la dirección que busca ya no me fijo de lo siguiente ya que no he sido capaz de llegar ahí (foto: 4.jpg).
Entonces yo intentándolo en "Subway Surf" llego hasta el paso 5. Uso la dirección de las monedas para asemejarlo al oro. Cuando me salta el "Breakpoint" (foto: mio1.png adjunto) asumo que lo que busco está guardado en esi+34, pero más arriba no me sale ninguna instrucción "call" como pasa en el juego "Wesnoth 1.14.9" y a partir ya de ahí no se como encontrar el puntero que busco.
Perdón si las cosas que escribo no están correctamente escritas, repito acabo de empezar e igual tengo algún concepto mal definido en mi cabeza. Todavía no entiendo el lenguaje ensamblador, pero estoy intentando aprenderlo. Agradecería que me digan qué me queda por hacer para conseguir llegar a donde quiero llegar, o que me digan en qué momento me he perdido y qué debería haber echo para no perderme. Un saludo.
pd: Muy buen libro 9,5/10!