La gente de Geohot publicó en WIKI como funciona su PurpleRa1n Jailbreak:
-----
* Purplera1n envía los comandos de recuperación de entrada utilizando iTunesMobileDevice
* Una vez en la recuperación (iBoot), envía la variable Exploit de entorno IBoot
* El Exploit adiciona un comando GeoHot que corre entonces el payload
* La comando "geohot" se ejecuta, el control es transferido de iboot ahora a la payload
* Se realiza entonces el cliente PurpleRa1n
Dentro del payload:
* El payload por defecto restaura el entorno y lo preserva para la nvram (fija el auto-arranque a true)
* Le coloca parches a la iBoot para cargar img3s sin firmar sin importar los tags
* Carga la imagen purplera1n (enviado con payload)
* Empieza la función de no parches
* IIb se descifra, parcheado, y el aumentado de tamaño a 0x24200. este es el segmento residente 0x24000 en la variable Exploit
* Un pequeño código de carga es colocado en 0x20000 para fijar la carga
* Iboot se descifra, parcheado
* Todo lo demás es como se lee
* Ni se escribe de vuelta, ni se hace patcher
* Kernel está cargado, descifrado, y parcheado
* Ramdisk está cargado (enviado con payload) y se trasladó a la región del Kernel 0x44000000.
* El Kernel parcheado es arrancado (booted)
* El Control de la carga está ahora transferido a ramdisk
Dentro de ramdisk
* Launchd se ejecuta, todo sucede aquí
* / Dev/disk0s1 está montado
* Fstab y servicios son sustituidos aquí para permitir que disk0s1 y afc2 escriban respectivamente
* Freeze.app se transfiere y el cargador de aplicaciones Freeze.app tiene bit SUID
* El Kernel parcheado se lee a partir del final de la RAM del dispositivo y escrito al sistema de ficheros
* Ramdisk está hecho, procede el reiniciado...
-----
Read More
-----
* Purplera1n envía los comandos de recuperación de entrada utilizando iTunesMobileDevice
* Una vez en la recuperación (iBoot), envía la variable Exploit de entorno IBoot
* El Exploit adiciona un comando GeoHot que corre entonces el payload
* La comando "geohot" se ejecuta, el control es transferido de iboot ahora a la payload
* Se realiza entonces el cliente PurpleRa1n
Dentro del payload:
* El payload por defecto restaura el entorno y lo preserva para la nvram (fija el auto-arranque a true)
* Le coloca parches a la iBoot para cargar img3s sin firmar sin importar los tags
* Carga la imagen purplera1n (enviado con payload)
* Empieza la función de no parches
* IIb se descifra, parcheado, y el aumentado de tamaño a 0x24200. este es el segmento residente 0x24000 en la variable Exploit
* Un pequeño código de carga es colocado en 0x20000 para fijar la carga
* Iboot se descifra, parcheado
* Todo lo demás es como se lee
* Ni se escribe de vuelta, ni se hace patcher
* Kernel está cargado, descifrado, y parcheado
* Ramdisk está cargado (enviado con payload) y se trasladó a la región del Kernel 0x44000000.
* El Kernel parcheado es arrancado (booted)
* El Control de la carga está ahora transferido a ramdisk
Dentro de ramdisk
* Launchd se ejecuta, todo sucede aquí
* / Dev/disk0s1 está montado
* Fstab y servicios son sustituidos aquí para permitir que disk0s1 y afc2 escriban respectivamente
* Freeze.app se transfiere y el cargador de aplicaciones Freeze.app tiene bit SUID
* El Kernel parcheado se lee a partir del final de la RAM del dispositivo y escrito al sistema de ficheros
* Ramdisk está hecho, procede el reiniciado...
-----
Read More