Blog

Hack the Game – Farm Heroes (Facebook)

Buenas  todos! En este nuevo y primer post en la serie “Hack the Game” vamos a ver como funciona y por supuesto como hacer mucho mas facil el juego “Farm Heroes” que es de los mismos creadores que “Candy Crush” y la aplicacion a sido probada desde Facebook al igual que hice con el Candy Crush.

Al igual que en el post de Candy Crush aqui vamos a utilizar el proxy Charles, para aquellos que no lo hayais utilizado nunca os recomiendo que echeis un ojo al otro post donde se introduce al uso del proxy y se muestran algunas funciones que tiene que durante estos post dare por sabidas para evitar que se alargen mucho los post.

Vamos al tema! Lo primero de todo es iniciar el juego desde una cuenta de Facebook.

farmheroes

 

Si analizamos las peticiones tras haber puesto un breakpoint para la web farmheroes.king.com empezaremos a ver las peticiones que realizamos al servidor y las respuestas que recibimos (Preferiblemente las veremos mediante JSON ya que es mas entendible), entre ellas destacaremos la siguiente que como veis es una respuesta muy similar a la que daba Candy Crush al iniciar el juego, donde es posible cambiarnos las vida utilizando el rewrite de Charles.

farmheroes2

 

Con esto conseguiremos tener vidas ilimitadas, ya que nunca bajaran de 50. Todo esto esta muy explicado en el anterior post sobre el Candy Crush así que me centrare en las cosas nuevas. Al iniciar el juego veremos la siguiente pantalla, donde como vemos tras haber modificado las vidas nos salen 55.

farmheroes3

 

Vamos a analizar ahora como va el juego por debajo, por lo que vamos a ver que pasa cuando inicias una partida nueva y los datos importantes que manda. La pantalla que nos aparece cuando vamos a jugar una partida (En este caso la 5) es la siguiente…

farmheroes4

 

Le damos a iniciar para ver las peticiones que se intercambia con el servidor y vemos por ejemplo la siguiente donde le indica que se va a jugar la partida 5 y que se le va a restar una vida (Podríamos hacer que ahí siempre pusiera 0 y así no nos restaría vida, es otra forma de hacer que tengas vidas infinitas).

farmheroes5

 

Después de esta petición recibimos otra que es similar a como iniciaba el Candy Crush una partida (Aunque en este caso con mucho menos datos como los bonus y demás…), aquí podríamos modificar mediante el rewrite como hemos dicho las vidas para hacer que sean infinitas siempre, y que en vez de tener 0 tengamos 50 poniendo un simple 5 delante 😉

farmheroes6

 

Una vez echo esto se inicia directamente el juego sin darnos ningún tipo de información sobre los bonus y otros elementos del juego.

farmheroes7

 

Por lo que como no nos da mas información vamos a ver si podemos sacar algo ;)! Para ello nos cogemos uno de los bonus que tengamos y lo usamos para ver que… Tacha! Ahora si nos genera información sobre los bonus! En este caso nos indica que queremos utilizar el id 6155 (Que es la pala) y lo queremos hacer en el nivel 5.

farmheroes8

 

Después de esto nos llega una petición que sin duda es mejor, donde vemos de ese mismo id cuantos nos quedan disponibles mediante “amount” (Esto es muy similar en el Candy Crush), por lo que si cambiamos la cantidad podremos tener los bonus que nosotros queramos como se muestra a continuación.

farmheroes8

farmheroes9

farmheroes10

farmheroes11

 

Esto mismo podríamos hacerlo mediante el Rewrite de Charles para que siempre tuviéramos 200 bonus de los que tengamos disponibles, teniendo de esta forma bonus infinitos. Pero ademas de esto podemos hacer otra cosa, y es desbloquear y poner la cantidad que queramos de otros bonus que no tengamos disponibles, pero eso os toca investigarlo a vosotros 😉

Como vemos hasta aquí, es juego se a quedado bastante mas sencillo ya que tenemos vidas y bonus ilimitados, pero… Aun podemos sacar mas!

Después de esto vamos a ver que datos genera la aplicación cuando finalizamos una partida, tanto cuando ganamos como cuando perdemos para ver si pudiéramos llegar a ponernos la puntuación que nosotros queramos (La panacea xD)!

Cuando le damos a salir de la partida vemos lo siguiente…

farmheroes12

farmheroes13

 

Tras echarle un ojo a la petición podemos ver una serie de cosas:

– “params” –> Nos esta indicando el nivel que hemos jugado, el tiempo en que lo hemos finalizado y tres parámetros mas que aun no sabemos que son.

– “n” –> Nos indica los objetivos a conseguir de las frutas

– “c” –> Nos indica los que hemos conseguido nosotros

 

Vamos a ver ahora que nos devolvería cuando terminamos un partida sin haber conseguido todo.

farmheroes14

farmheroes15

 

En este caso podemos ver los mismos parámetros de antes pero con las puntuaciones distintas y demás. Ademas de esto tenemos que ver el 6000 que hay tanto en “params” como en “ger” ya que los utilizaremos después. En este caso aunque parezca que si nos cambiamos los datos nos va a permitir cambiar la puntuación no es así ya que no esta generando la misma petición que si estuviéramos ganando, por lo tanto no nos vale. La ultima prueba que nos queda por hacer es la de comprobar que pasa cuando ganamos una partida, y el resultado es una petición como la siguiente..

[{
   "id": 0,
   "method": "LifeApi.addLives",
   "params": [1, 10211]
}, {
   "id": 1,
   "method": "StarLevelApi.synchronizeLevels",
   "params": [
   [{
     "stars": 3,
     "id": 5,
     "locked": false,
     "score": 473,
     "unlockTime": 1389652212097
   }]
 ]
}, {
   "id": 2,
   "method": "StarLevelApi.synchronizeLevels",
   "params": [
   [{
     "stars": 0,
     "id": 6,
     "locked": false,
     "score": 0,
     "unlockTime": 1391418043213
   }]
 ]
}, {
   "id": 3,
   "method": "BoosterApi.useBoosters",
   "params": [
   [{
     "boosterTypeId": 6101,
     "amount": 100
   }, {
   "boosterTypeId": 6104,
   "amount": 100
   }], ""]
}, {
   "id": 4,
   "method": "OpenGraphPublisher.publishFriendBeaten",
   "params": [{
     "levelId": 5,
     "friendFacebookId": ["699692591", "100001800772374", "1404056134", "701267340", "1348481864", "1137495407"]
   }]
}, {
   "id": 5,
   "method": "StarLevelGameRoundApi.endGame",
   "params": [5, 1391417837948, 473, 3, 0]
}, {
   "id": 6,
   "method": "VirtualCurrencyApi.payoutSoftCurrency",
   "params": [{
   "softCurrencyDelta": 250,
   "details": "Post,,5"
 }, "9c5927da1259bddc3016fc945ea7d402"]
}]

 

Aquí tenemos ya muchas cosas interesantes, entre ella la siguiente, donde vemos la puntuación en % que hemos echo.

farmheroes17

 

En este caso SI que podemos cambiarlo, ya que la aplicación no comprueba que sea la misma que realmente se a obtenido, por lo que podríamos cambiarla y poner por ejemplo un 0 mas 😉

farmheroes18

 

 

Si hacemos esto necesitamos también modificar abajo del todo la puntuación exactamente por la misma que hemos puesto antes.

farmheroes21

 

Ademas de esto podríamos hacer otras cosas muy interesantes como por ejemplo seleccionar nuestro nivel tope, es decir que podemos pasar del 1 al 100 en una partida modificando la siguiente petición…

farmheroes19

 

En la siguiente petición que se realiza veremos que también nos aparece nuestra puntuación, pero ahora no como 473% sino como 473.000 (Que sera la puntuación real), pues deberemos de ponerle la misma puntuación que nos hayamos puesto antes, en mi caso, un 0 mas.

farmheroes22

 

 

Una vez hemos modificado la puntuación (Y el nivel máximo si queremos) veremos que nuestra puntuación no a cambiado ni nada… ¿Porque? Pues porque la aplicación no le a pedido al servidor la puntuación que hemos sacado y se queda con la que teníamos realmente, pero es tan sencillo como actualizar la pagina y volver a cargar la aplicación para que veamos que realmente hemos podido modificar nuestra puntuación, poniéndonos la que quisiéramos y todo el mundo vera que tenemos esa puntuación, porque ahora, es nuestra puntuación ;)! En nuestro caso solo le pusimos un 0 mas, pasando de 473.000 a 4.730.000…

farmheroes23

 

Como veis ahora el juego no es que sea fácil, es que podemos hacer lo que nosotros queramos! En este post hemos visto como podríamos tener vidas infinitas, bonus infinitos, desbloquear cualquier nivel, desbloquear cualquier bonus y como no, ponernos la puntuación que queramos! Por supuesto hay muchas mas cosas, por ejemplo podríamos automatizar todo mediante el rewrite de Charlie, podríamos modificar las peticiones para que no tuviéramos ni que jugar, es decir que seleccionáramos un nivel y ganáramos directamente y un sin fin mas de cosas, pero eso os dejo a vosotros, para que con esta base jugáis y cachareeis un poco!

También animo a todo aquel que descubra mas cosas (Que las hay), o que lo haga de otra manera a participar y colaborar en el debate que abriré después para este “Hack the Game”.

Espero que os haya gustado!

Un saludo,

Eduardo – eduardo@highsec.es – @_Hykeos

  1. Across
    Across02-03-2014

    Muy buena sección, estaba buscando algo por el estilo. En este juego no se, pero en el Candy Crush veo una forma mas facil y sencilla, que es con el Cheat Engine, buscando el valor a modificar y solucionado, tanto para movimientos infinitos como para puntuación (Tambien desde el movil). Yo suelo jugar desde el movil y para este tipo de juegos se pueden modificar tranquilamente con el Game Guardian, CIH, Game Killer, etc…

    Ando buscando algo de esto para el Family Farm (Vida en la Granja Marina) pero para la version movil o de Android.
    He intentado modificarlo con los programas anteriormente mencionados pero al llevar sincronización continua con el servidor da error de sincronización…A ver si encontraras alguna forma!!! Gracias

    Eperando el debate, si eso hago un “Copy&Paste” de esto 😉

    Un Saludo!

    • Eduardo Arriols
      Eduardo Arriols02-03-2014

      Buenas Across! Sin duda tambien es una forma de hacer ;)! En cuanto a los del juego que me comentas le echare un ojo!

      Un saludo!

Leave a Reply

*

    No Twitter Messages