domingo, 17 de febrero de 2008

Artículo: Firmware al descubierto -> 1.1.3

El iPod/iPhone como aparato electrónico se apoya en un software que lo controla, del mismo modo que un PC por sí solo no sirve para nada. Cuando nos solemos referir a un tipo de software incluido en un dispositivo electrónico como una memoria flash, EEPROM, ROM... generalmente se usa el término de firmware. Luego podemos decir que el firmware del iPod/iPhone no es más que todo el software que lo controla. Decír que es el "Sistema operativo" sería falso. Dentro del firmware podríamos encontrar en este caso un sistema operativo de apoyo, pero la firmware en sí no es un sistema operativo.

Aclarado este punto, ¿por qué de cuando en cuando Apple saca una actualización de Firmware? Bueno, como todo software esto es completamente necesario si se quiere añadir nuevas funciones, pulir fallos, mejorar el rendimiento... Por ello es siempre importante en la medida que se pueda mantenerlo siempre actualizado.

¿Pero que hay realmente dentro de la firmware de Apple? ¿que es lo que se descarga itunes? Bueno, es lo que vamos a aclarar.

Antes de explicar de que se compone esta firmware hay que tener unas nociones mínimas de Linux/Unix. Y esto se debe a que el OS (El sistema operativo) en el que se apoya nuestro jugete es MAC OS, o una versión de él, y MAC OS procede de Darwin, que está basado en UNIX. Es decir, que dentro de MAC OS veremos multitud de similitudes con Linux.

Dicho este pequeño paréntesis, seguimos. Podemos descargar manualmente la firmware desde los servidores de apple y empezar con el análisis:


iPod 1.1.3 -> http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw

iPhone 1.1.3 -> http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-4061.20080115.4Fvn7/iPhone1,1_1.1.3_4A93_Restore.ipsw

Aunque a priori nos pone que es un archivo ipsw no es más que un archivo zip q podremos descomprimir con cualquier programa. Los dos archivos son prácticamente iguales, así que tan solo haremos referencia a uno de ellos, en este caso al del iPod.

Si descomprimismo el archivo iPod1,1_1.1.3_4A93_Restore.ipsw nos encontramos con lo siguiente:

/...
022-3742-100.dmg
022-3745-250.dmg
022-3748-284.dmg
kernelcache.release.s5l8900xrb
Restore.plist -> Un archivo descriptivo sobre los archivos que tiene el paquete descargado

Firmware/all_flash/all_flash.n45ap.production
applelogo.img2
batterycharging.img2
batterylow0.img2
batterylow1.img2
DeviceTree.n45ap.img2
iBoot.n45ap.RELEASE.img2
iBoot.n45ap.RELEASE.img2
manifest
needservice.img2
recoverymode.img2

Firmware/dfu
iBEC.n45ap.RELEASE.dfu
iBSS.n45ap.RELEASE.dfu
WTF.s5l8900xall.RELEASE.dfu

---------

Eso es todo lo que encontramos. Ahora bien, podemos profundizar más en cada uno de los archivos por separado.


022-3742-100.dmg:

Es la Imagen del OS. Contiene todos los archivos del sistema operativo. Es una imagen DMG estandar encriptada. Para poder acceder a los datos en ella se debe de desencriptar anteriormente. Es como si fuera una imagen de disco ISO o BIN. Las imágenes de disco en MAC son DMG. Cada imagen de OS de cada versión de firmware ha estado encriptada con una key diferente en cada ocasión. En esta ocasión, la key es la misma para tanto el iphone como para el ipod touch, y dado q la key se ha publicado en muchos lugaras, no voy a copiarla aquí, además de no saber exactamente lo legal q pueda ser, pero os dejo el inicio y fin para quien quiera buscarla.

key: 1107..5816

Como hemos dicho, para desencriptarla es necesario usar algún programa para DMG encriptados, como por ejemplo vdecrypt, q se puede obtener en muchso lugares, por ejemplo de aquí:

http://iphoneelite.googlecode.com/files/vfdecrypt.zip

Su uso es simple:

vfdecrypt -i [imagen encriptada] -o [imagen desencriptada ] -k [key]

Una vez realizado todo el proceso se puede montar la imagen o convertir a cualquier otro formato q queramos con dmgtobin por ejemplo. Dentro de la imagen tendremos todo, desde las aplicaciones, archivos de configuración... todo el OS del ipod.


022-3745-250.dmg y 022-3748-284.dmg:

Son las dos imágenes de disco de la ramdisk. La primera pertenece a la RAMDisk de actualización, y la segunda a la RAMDisk de restauración.

Una RamDisk es como un disco virtual q se carga en RAM, con estructura de disco, para proporcionar un acceso rápido a los datos q se almacenan en ella. Al apagar el dispotivio la ram se vacía, como siempre.

Cuando restauramos el ipod o lo actualizamos, se monta la ramdisk correspondiente en la ram del ipod. Una vez montada se ejecuta. Es la Ramdisk la q realizará toda la instalación del sistema. En la Ramdisk por tanto se encuentran los archivos indispensables y más básicos para poder montar la imagen del OS en el ipod, actualizar el baseband del iphone y otras rutinas de preparación. Cuando se termina la actualización/restauración, la ramdisk cargada se vacía y desaparece del ipod. tener acceso a la Ramdisk es lo más jugoso de todo, ya q modificandola se podría crear todo tipo de soluciones para liberar los iphone o hacer jailbreak. Precísamente es este método el q usa zibri para atacar la versión 1.1.3 directamente (sin hacer soft upgrade)

Estas imágenes están encriptadas tb. Pero a diferencia de la del OS q tiene un cifrado más débil, la RAMdisk, asi como la mayoría de todos los demás archivos dentro del paquete, se les denomina archivos tipo 8900 en honor al FourCC de ellos. Son archivos encriptados con AES-128, cifrado q no se toma en broma. Pero por suerte la key tb fue obtenida y publicada en muchos sitios

key: 1884..3774

Para desencriptar cualquier archivo 8900 tan solo se debe de aplicar un algoritmo de desencriptación AES-128, por ejemplo el mismo OpenSSL lo hace de la siguiente forma:

openssl enc -d -in [imagen encriptada] -out [imagen desencriptada] -aes-128-cbc -K [key] -iv 0

Y con eso obtendríamos las RamDisk para poder montarlas o conbertirlas o extraerlas.

Como hemos dicho, entre otras cosas se encuentra dentro de estas las firmware del baseband del iphone. El BaseBand es la firmware del modem del teléfono, quien gestiona toda la comunicación movil.


kernelcache.release.s5l8900xrb

Poco q decir de este archivo, es el nuevo kernel


Archivos img2:

Archivos tb encriptados tipo 8900. Una vez desencriptados no he logrado dar con el formato de archivo correcto, pero me da la sensación q no son más q imágenes. Imágenes q pueden necesitarse durante la carga, actualizació o restauración del ipod, como por ejemplo el logo de apple de la manzana, el logo de conexión a itunes, el de batería... de todos modos en cuanto me ponga pienos terminar por abrirlos.


Archivos dfu:

El ipod actua en tres modos de operación diferentes:

Modo de uso, q es el normal para nosotros, lo encendemos y entra en el ipod.
Modo de Reparación/Restauración: Se entra en este modo cuando por un mal funcionamiento se debe de restaurar el ipod completamente. Un mal funcionamiento o a drede.
Modo DFU (Device Firmware Update): Modo de actualización de firmware. Se entra en este modo por ejemplo al actualizar el ipod a una version superior o inferior.

Los archivos DFU son introducidos en el ipod antes q cualquier otro. estos inducirán al ipod a un modo u a otro. Digamos q son los q se encargan de decirle al ipod q se cambie de modo de operación y se prepare para una actualización o una restauración.

Un saludo.

---------------------

Y en realidad no hay más. Como podemos ver a nivel de software es una gozada, puesto q es todo relativamente simple de comprender. No lo es tanto ya todo el proceso de actualización/restauración, pero a groso modo es muy simple de verlo.

Para quienes sean curiosos tan solo tienen q descargar el paquete y desencriptar las imágenes de disco o los archivos sueltos para aprender un poco más como funciona todo, puesto q esto tan solo es algo introductorio.

No hay comentarios:

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