jueves, 6 de marzo de 2008

Proyecto: Modificando SpringBoard (Activando las aplicaciones de pago de Enero)

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

33 comentarios:

Anónimo dijo...

hay alguna manera de accesar a la carpeta para sustituir al archivo en cuestion y verificar el funcionamiento de estos?
y como acceder a ella

Theliel dijo...

claro, instalando OPenSSH en el ipod y un cliente SFTP en tu PC, por ejemplo WinSCP.

ì|ëåññå dijo...
Este comentario ha sido eliminado por el autor.
Anónimo dijo...

Increible, tanto lo del SpringBoard como lo de pasar el iPod touch de 16 a la 1.1.4, muuuchas gracias.

Sigue asi

VladDrac dijo...

Theliel:
Tanto tiempo!

Soy yo desde Chile (pabloelectribe, el del foro!)
Te cuento que hice al pie de la letra todas las instrucciones pero, aleatoriamente y sin precedentes, se cuelgan algunas apps. incluso entro a contactos una vez bien, a la siguiente se cuelga (se queda pegado sin entrar) que podra ser?

Tampoco puedo acceder al correo electronico, se cuelga la aplicacion.

Saludos y espero tu respuesta!

Theliel dijo...

si tienes problemas de cuelges o lo q sea, realiza de nuevo el JB, posiblemente algo no hiciste bien

VladDrac dijo...

Theliel:
Te va a sonar increible lo ke paso pero es cierto:
Para evitar el cuelgue y hacer el JB de nuevo, lleve el itouch a DFU mode en el ziphone. Como me pedia restaurar desde itunes, lo trato de hacer y llevo casi 8 horas con un error de restauracion
"error desconocido de restauracion, no es posible restaurar el ipod (6)" O ALGO ASI!!!! estoy desesperado de verdad porke no deja de salir la pantalla ke pide conectarme a itunes.. no se ke hacer, de verdad creo que no hay salida... puedes ayudarme porfa!?

Theliel dijo...

Error 6 =

O reiniciar el PC
O estás intentando un downgrade, q no croe q sea el caso, así q reinicia el PC

VladDrac dijo...

Lo que hice fue actualizar a la version mas reciente de itunes. Luego buske la restauracion desde el archivo 1.1.4 que dejaste aki en tu blog y todo bien... tengo 1.1.4 limpio. Perdi notas, contactos, etc, todo!!!!
jaeejaj
voy por las apps ahora.

jailbrokeo desde ziphone?
y modifico el summerboard?
te digo si tengo problemas de cuelgue asi con este jb clean.

Anónimo dijo...

Hola Theliel, he seguido tus pasos para desbloquear las aplicaciones de enero y me ha salido todo bien, pero a la hora de conectar a internet para descargar datos de las aplicaciones del tiempo y la bolsa no se conecta. Maps y mail va perfecto. Muchas gracias por tu ayuda.
Saludoos

Theliel dijo...

Pues lamento decirte pero es tu conexion o tu ISP. Tanto la bolsa como el tiempo se conectan a los servidores de yahoo, y ahí debes de tener el problema. quizás tu ISP, quizás tu router/cortafuegos o quizás tan solo una caida temporal de los servicios de yahoo por tu zona

Anónimo dijo...

Hola Theliel, una pregunta quería hacerte a ver si me puedes ayudar.
Hice el desbloqueo de aplicaciones tal y como indicabas en el manual y funcionó perfectamente. Pero he notado que cuando entro al tiempo y modifico la ciudad o en la bolsa los tickers cuando cierro la app vuelven a salir los que trae por defecto.
Supongo que será algo sobre los permisos de algún archivo o carpeta pero a ver si me puedes concretar tu un poco.
Muchas gracias por tu ayuda!

Theliel dijo...

Si no puedes modificar dichos archivos es seguramente pq no tienes permisos, efectvicamente. Los dos archivos q mencionas están en /private/var/mobile/Library/Preferences

uno se llama com.apple.weather.plist y el otro com.apple.stock.plist

puedes ver los permisos q tienen y en caso de no ser suficientes probar con 755

Anónimo dijo...

Theliel he estado buscando esos dos archivos y no existen en la carpeta que me dices. Será porque no son las APP de pago?

Theliel dijo...

Esos dos archivos están exactamente en la carpeta q te digo. Si no te salen es el motivo por el cual los ajustes no se te quedan. Es decir, en cuanto sales de las aplicaciones con alguna modificacion realizada se crean sendos archivos.

Mira a ver los permisos de la carpeta rpreferences, deberían estar en 755 y mira tb el propietario de dicha carpeta, debería de ser tb mobile

Anónimo dijo...

Eres un crack Theliel! Todo arreglado. La carpeta Preferences tenia como propietario a root y por eso no podia guardarse nada. Con el putty todo arreglado.

Saludos

Anónimo dijo...

Bueno, antes de nada la enhorabuena. Mis mas sinceras felicitaciones. Y ahora, desgraciadamente la pregunta...jejeje. He modificado el Springboard yo solo, de forma correcta comparándolo con el tuyo. Pero leo...."modifica los permisos a 755"...¿de que archivo? ¿como?.

Si no te es molestia y me lo explicas, te lo agradezco de veras.

Un saludo muy grande!!

Anónimo dijo...

Perdóname el "ansia"....Ya está solucionado. Es que pregunto antes de investigar y pasa lo que pasa...Solucionado. Y perfecto. Un saludo!!

Anónimo dijo...

Theliel, antes de nada y sobretodo MUCHAS GRACIAS por tu ayuda desinteresada a todo el mundo. Justifico mi pregunta diciendo que soy super novato en todo esto pero bueno, estoy metiendo horas.

Yo he buscado el archivo en Buscar de Windows y no aparece... es ahi donde se busca? y una vez que lo encuentre, como se modifica... si puedes darme paso por paso seria genial. Gracias tio
Saludos desde Zaragoza

Anónimo dijo...

Otra vez aqui...
He desbloqueado mi ipod itouch que es de 1.1.4 lo hice con el ZiPhone y cuando quiero pasar las canciones desde mi itunes, me dice que no puede... Como se pasan las canciones despues de que lo hemos desbloqueado?
Mil GRACIAS otra vez.

Damián dijo...

Hola, tengo un problema al querer restaurar mi ipod ya que se apago dos veces solo y ahora cuando lo conecto a la pc me dice que esta en modo de recuperacion, a lo que lo restauro y cuando esta por restaurar el firmware aparece el mensaje de error que dice: error desconocido (6)...alguien le sucedio y lo soluciono, por algun lado escuche que se puede restaurar desde el zipphone, pero aun no lo probe alguien tiene otra solucion???
Saludos

akm8 dijo...

como accedo a: ./System/Library/CoreServices/SpringBoard.app
???
despues de acceder a esta carpeta lo que tngo k acer es sustituir la carpeta modificada por la original, no?Espero respuesta, muchas gracias.

Theliel dijo...

deberás acceder por SCP con WinSCP por ejemplo

akm8 dijo...

me he descargado el WinSCP, xro n ose que hacer para ver las carpetas del ipod..ayuda por favor;)

Theliel dijo...

hay en este mismo blog pasos a pasos de como hacerlos, si no recuerdo mal en la entrada de herramientas utiles II, pero sino busca.

Damián dijo...

Theliel, tengo un problema al querer restaurar mi ipod ya que se apago dos veces solo y ahora cuando lo conecto a la pc me dice que esta en modo de recuperacion, a lo que lo restauro y cuando esta por restaurar el firmware aparece el mensaje de error que dice: error desconocido (6)...alguien le sucedio y lo soluciono, por algun lado escuche que se puede restaurar desde el zipphone, pero aun no lo probe alguien tiene otra solucion???
Saludos

akm8 dijo...

ya he accedido a el archivo SpringBoard, ahora tengo k coger el archivo SpingBoard modificado k me e descargado y sustituirlo por el original, no?
Que siginifica cambiar losp ermisos a 755??Muchas gracias, salu2!!

Theliel dijo...

bueno, primero no escribir comentarios en entradas que no tienen nada q ver :)

Segundo, con ziphone no se puede restaurar, lo puedes poner en modo DFU y restaurar por itunes

Theliel dijo...

pues cambiar los permisos es cambiar los permisos. No sustituyas nada si no comprendes q es eso de los permisos, sino se te bloqueará.

bton derecho, propiedades sobre el archivo... ahi lo verás, pero aun así aprende antes un poco de permisos.

akm8 dijo...

he sustituido el archivo SpringBoard modificado x el original y he puesto 0755 donde los permisos...pero no me aparece nada en el ipod?porque?he hecho algo mal??graciass

Damián dijo...

Igualmente me sigue apareciendo este mensaje...lo conoces???

Anónimo dijo...

amigo theliel tengo una pregunta para ti yo en mi installer instale tu repo por cierto una de las mejores que he agregado, ayer tuve que hacerle un reseteo total al ipod y volver a hacer el jailbreak y todo eso...
cuando abri mi installer y trate de añadir tu repo me dice: “Refresh Failed: Could Not Refresh Sources"
y no puedo agregarla he intentado varias veces pero nada me gustaria tener de nuevo la aplicacion de "ajustes avanzados" era la mejor que tenia.


gracias y saludos espero tu repuesta ya que cuanto solo contigo
gracias!!!

Theliel dijo...

Si has leido la primera entrada, tanto el repo como las descargas directas y otros contenidos han sido temporalmente desactivados. La razón esta escrita en el primer post del blog :)

Esperemos que en poco podamos volver a estar en linea

 
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.