¿Cómo la gente hackea juegos de iPhone tan fácilmente?

He visto puntajes altos de 999,999 en Flappy Bird , así como muchos otros puntajes altos imposibles en juegos como Temple Run, etc., en iPhone y iPad.

¿Cómo la gente piratea estos juegos tan fácilmente cuando no pueden ver el código fuente? Parece que conocen el código fuente del juego, lo que les permite manipular el archivo del juego tan fácilmente. No entiendo cómo sucede esto dado que el iPhone de Apple está aislado, a diferencia de Android.

FWIW, Android también aplica aplicaciones de sandbox. El diablo está en los detalles: qué tipo de accesos se impiden y se permiten.

Respuestas (3)

Las aplicaciones de iOS almacenan sus datos en archivos que están disponibles desde una computadora de dos maneras fácilmente accesibles:

  • Dentro de una copia de seguridad de iTunes

  • A través de una herramienta basada en el marco de MobileDevice, como iExplorer

En mi experiencia, los datos guardados del juego se almacenan en un archivo de lista de propiedades bastante común que se puede manipular a través de la plutilherramienta. Los datos se pueden restaurar y reemplazar sin ningún conocimiento de código. A partir de ahí, es una simple cuestión de cuánto confía la aplicación en sus datos guardados.

Para ver un ejemplo de cómo se puede usar esto no solo para puntajes altos, sino también para hacer trampa en un juego, vea Nimble Quest iOS Trainer , que en sí mismo está basado en el marco de MobileDevice.

(El marco MobileDevice es un marco privado de Apple creado para el acceso a dispositivos iOS, que se ha diseñado de forma inversa para permitir la creación de herramientas para dispositivos iOS que no están disponibles en Apple).

¿Es posible, de alguna manera, encriptar estos datos en el marco? Entonces, ¿mi aplicación tiene un archivo plist ilegible para humanos pero aún contiene puntajes altos válidos?
Sin duda, podría ocultar (para resistencia a la lectura) o realizar una suma de comprobación (para resistencia a la manipulación) de sus datos. Eso elevará el nivel, aunque seguirás siendo vulnerable si alguien quiere modificar tanto los datos que hará ingeniería inversa de tu aplicación para hacerlo.

Algunos juegos se comunican con su servidor backend sin cifrar, en texto sin formato. Si enruta el tráfico a través de un proxy como OWASP ZAP o Burp Suite, puede ver y manipular el tráfico.

He visto juegos que envían las respuestas con la pregunta al iPhone. En este escenario podría resaltar las respuestas correctas. Como resultado, siempre puedes obtener el 100 %. Otros juegos envían las puntuaciones al servidor. En ese caso, solo puede agregar algunos ceros a su puntaje al enviarlo.

Luego están los juegos que almacenan tus puntajes en el teléfono, como describe Zigg. Estos puntajes se almacenan en un área en la que el usuario puede leer y escribir y, por lo tanto, pueden manipularse. Por supuesto, esto solo se almacena en el teléfono, pero puede presumir ante sus amigos al mostrar su teléfono.

Es muy simple piratear juegos, incluso Choque de clanes, casi todos los juegos que tengo están pirateados.