Share on Google+Share on FacebookTweet about this on Twitter

Como todos deberíamos de saber ya, en Enero Apple lanzó una actualización de pago que permitiría tener las aplicaciones antes exclusivas del iPhone en el iPod. Esta actualización cuesta unos 16€ más o menos.

Hubo mucha polémica, ya que Apple alegó que debido a la ley de Sarbanes-Oxley, no podía ofrecer dicha actualización libremente. Claro que todo el mundo está seguro de que si se hubiese esforzado haría encontrado la manera. Por otro lado, la firmware del iPod Touch, a partir de la versión 1.1.3 incorpora dentro de sí misma dichas aplicaciones!! y lo que se compra por esos 20€ aproximadamente no es más que un archivo de configuración (por así decirlo) para activarlas. Se dieron muchas soluciones a este problema, y finalmente la que más se extendió fue usar un parche para SpringBoard, que es la aplicación que gestiona todo el Board en nuestro iPod.

Evidenemtente esto es ilegal, ya que estaríamos usando un software por el cual no tenemos licencia, y la única forma legal de usarlo sería pagando esos casi 20€. Aquí no voy a discutir de la moral o no de cada cual, que no este de acuerdo con ciertas cosas no quiere decir que haya que haya que incurrir en algo no legal. Así que esta entrada es méramente informatíba y didáctica.

Ya sabemos seguramente con hacer una búsqueda en google donde encontrar parches, modificaciones y similares, pero descargar este tipo de “programas” siempre trae consigo un riesgo importante: No sabemos que estamos haciendo.

Como ya mucho sabeis, hay una aplicación llamada SpringBoard que gestiona todo lo que sería el escritorio del dispositivo. Esta aplicación no está alojada en la ruta normal de aplicaciones, sino en:

./System/Library/CoreServices/SpringBoard.app

Dentro de esa carpeta se encuentran ademas de muchos iconos de sistema q pueden ser modificados la aplicación propiamente dicha, el ejecutable por así decirlo, que sería el archivo “SpringBoard”

Hace ya mucho, salió un archivo SpringBoard modificado que permitía activar las aplicaciones del iPhone sin necesidad de comprarlas para la versión de firmware 1.1.3. Ese Springboard modificado evidentemente se modificó a partir de un SpringBoard Original de la 1.1.3. Seguramente a través de IDA o algún otro desensamblador se realizó ingeniería inversa y se creó el archivo modificado.

Pues bien, el tiempo pasa y tenemos una versión de firmware 1.1.4. Muchos automáticamente acudieron a los repositorios de siempre o a los archivos de siempre para activar las mismas aplicaciones de pago, pero esta vez en la versión 1.1.4. Y funcionaba. Lo que ya no sabe tanta gente, es q el SpringBoard de la versión 1.1.3 es diferente al SpringBoard de la version 1.1.4. Hasta que punto los cambios son cuantitativos? no lo se, pero os aseguro que son diferentes. Esto que quiere decir? pues que si ya de por sí usar parches (ademas de ser ilegal) puede ser problemático si no se hace correctamente, si encima se usa un archivo de otra versión los problemas pueden ser mucho mayores.

Claro que la mayoría de las personas no se percatan de esos detalles y toman más aquello de: Si funciona, no me preocupo. Claro que a lo mejor con el tiempo es cuando aparecen los problemas, dudas, cuelges… que no tiene por que pasar!! pero es posible que sí. Pero como por ahora las personas podían activar sus aplicaciones no se percataron de que los SpringBoard eran diferentes. Así que bueno, pondré mi granito de arena y vamos a explicar como se modificaría el SpringBoard 1.1.3 o 1.1.4 para activar de forma ilegal las aplicaciones. Repito que esto es solo teoríco, y de ningún modo se debería de hacer si no se ha pagado por las aplicaciones con anterioridad.

Explicar el proceso completo por el cual al final llegamos a la conclusión de que tan solo es necesario cambiar un par de bytes y cuales son, es un poco complicado. Digamos que despues de usar IDA, encontramos los saltos que permiten o no activar las aplicaciones. Estos saltos condicionales nos llevarán a una parte del código u otra según sea. Si modificamos estos saltos para que salten a la dirección que deseamos, es posible así eludir la protección, y hacer que las aplicaciones se activen siempre. Usando IDA por ejemplo se llega a la conclusión de que los bytes que hay que modificar son los bytes que se encuentran en las direcciones:

0x7380F Modificar el byte, cuyo contenido es ’13’ a ‘E3’
0x73813 Modificar el byte, cuyo contenido es ‘1A’ a ‘EA’

Eso es lo que se extrae de IDA cuando lo usamos. Con esos datos ya el siguiente proceso es más simple, usar cualquier editor hexadecimal, modificar los dos bytes especificados, guardar el archivo como nuevo, y ya tendríamos nuestro SpringBoard modificado. Personalmente me gusta mucho WinHex, pero hay muchímos otros, gratuitos, de pago… para todos los gustos y colores.

Este método sirve tanto en la 1.1.3 como en la 1.1.4, es decir, partiendo del SpringBoard original 1.1.4 es posible modificarlo de la manera indicada para activar en teoría las aplicaciones de pago:

Archivo sin modificar con los offset específicos:

Archivo modificado con los offeset específicos:

Una vez tengamos el archivo SpringBoard modificado tan solo será necesario sustituirlo por el archivo original dentro del iPod y modificar sus permisos también a 755.

Os dejo un enlace de como deberían de quedar los archivos modificados, tanto el de la versión 1.1.3 como el de la versión 1.1.4. EN NINGÚN CASO deberían de usarse para usar de manera ilegal las aplicaciones de pago, tan solo como plantilla para comprender mejor el método explicado aquí:

http://rapidshare.com/files/97524953/SpringBoard.7z.html