IBoot

From The French Apple Wiki
Jump to navigationJump to search

iBoot (Bootloader)

[edit | edit source]

iBoot, également appelé « iBoot second-stage loader » dans le code source, est le bootloader de stade 2 d'Apple pour tous les appareils. Il exécute ce qui est connu sous le nom de Recovery Mode. Il dispose d'une interface interactive qui peut être utilisée via USB ou série.

Extraction et désassemblage

[edit | edit source]

Pour extraire le bootloader et le désassembler avec IDA :

  1. Obtenez le bootloader à partir de l'IPSW. Ce fichier se trouve dans le sous-répertoire Firmware/all_flash, par exemple Firmware/all_flash/all_flash.n81ap.production/iBoot.n81ap.RELEASE.img3, où "n81ap", "k90", etc., correspondent au type d'i-Device.
  2. Exécutez xpwntool avec la clé appropriée.
  3. Assurez-vous que le décryptage a réussi – si c'est le cas, vous devriez voir le texte suivant en affichant le fichier :
"iBoot for ...., Copyright 2011, Apple Inc."
  1. Chargez-le dans IDA. Définissez le processeur sur ARM. Rebasez le programme (Edit → Segments → Rebase Program) à 0x5FF00000 (pour iBoot dans iOS 5). Vous devriez voir quelque chose comme :
ROM:5FF00000 loc_5FF00000                            ; CODE XREF: ROM:5FF00078↓j
ROM:5FF00000                 B       loc_5FF00040        ; Used for Reset - This is where we start
ROM:5FF00004 ; ---------------------------------------------------------------------------
ROM:5FF00004                 LDR     PC, =sub_5FF16FB4   ; Used for Undef
ROM:5FF00008 ; ---------------------------------------------------------------------------
ROM:5FF00008                 LDR     PC, =sub_5FF16FEC   ; Used for SWI
ROM:5FF0000C ; ---------------------------------------------------------------------------
ROM:5FF0000C                 LDR     PC, =sub_5FF17024   ; Used for Prefabt
ROM:5FF00010 ; ---------------------------------------------------------------------------
ROM:5FF00010                 LDR     PC, =sub_5FF17060   ; Used for DataAbt
ROM:5FF00014 ; ---------------------------------------------------------------------------
ROM:5FF00014                 LDR     PC, =loc_5FF17098   ; Used for AddrExc 
ROM:5FF00018 ; ---------------------------------------------------------------------------
ROM:5FF00018                 LDR     PC, =loc_5FF17098   ; Used for IRQ
ROM:5FF0001C ; ---------------------------------------------------------------------------
ROM:5FF0001C                 LDR     PC, =loc_5FF17098   ; Used for FIQ
ROM:5FF00020 ; ---------------------------------------------------------------------------

Versions

[edit | edit source]

Voici une liste des versions d'iBoot, organisées par numéro de version et build d'iOS. Notez que les versions listées couvrent une large gamme d'iOS, de 1.0 à 12.1 (RC).

Nom du fichier Version d'iOS Build Numéro de version interne
iBoot-1940.1.3 5.0 beta 9A5220p
iBoot-1940.1.4 5.0 beta 2 9A5248d
iBoot-1940.3.1 5.0 beta 3 9A5259f
iBoot-1940.3.5 5.0 beta 4 9A5274d
iBoot-1940.3.5 5.0 beta 5 9A5288d
iBoot-1940.3.5 5.0 beta 6 9A5302b
iBoot-1940.3.5 5.0 beta 7 9A5313e
iBoot-1940.3.5 5.0 GM 9A334
iBoot-1940.3.5 5.0 9A334
iBoot-1940.3.5 5.0.1 beta 9A402
iBoot-1940.3.5 5.0.1 beta 2 9A404
iBoot-1940.3.5 5.0.1 beta 3 9A405
iBoot-1940.3.5 5.0.1 9A405
iBoot-1940.10.51 5.1 beta 9B5117b
iBoot-1940.10.54 5.1 beta 2 9B5127c
iBoot-1940.10.57 5.1 beta 3 9B5141a
iBoot-1940.10.58 5.1 9B206
iBoot-1940.10.58 5.1.1 9B206
... ... ... ...
iBoot-7429.0.72.0.3~559 12.0 beta 21A5248p
iBoot-7429.0.133.121.1~6 12.0 beta 2 21A5268h
iBoot-7429.0.181.131.1~5 12.0 beta 3 21A5284e
iBoot-7429.0.207.141.1~4 12.0 beta 4 21A5294g
iBoot-7429.30.8.0.4~161 12.0 beta 5 21A5304g
iBoot-7429.40.38~32 12.0 beta 6 21A5506j
iBoot-7429.40.68~75 12.0 beta 7 21A5522h
iBoot-7429.40.84.181.1~3 12.0 beta 8 21A5534d
iBoot-7429.40.92.0.5~11 12.0 beta 9 21A5543b
iBoot-7429.41.4~21 12.0 beta 10 21A5552a
iBoot-7429.30.65 12.0 21A344
iBoot-7429.41.4~25 12.0.1 RC 21A558
iBoot-7429.41.5~1 12.0.1 RC 2 21A559
12.0.1
iBoot-7429.60.27.0.1~107 12.1 beta 21C5021h
iBoot-7429.60.41~118 12.1 beta 2 21C5031d
iBoot-7429.60.47~12 12.1 beta 3 21C5039b
iBoot-7429.61.2~16 12.1 beta 4 21C5045a
iBoot-7429.61.2~18 12.1 RC 21C51

(Note : La liste complète des versions est étendue et couvre de nombreuses builds d'iOS. Pour des raisons de concision, seuls quelques exemples sont présentés ici. Consultez la source originale pour la liste exhaustive.)

Conclusion

[edit | edit source]

iBoot est un composant essentiel du processus de démarrage des appareils Apple, gérant le mode de récupération et offrant une interface interactive pour le débogage et la restauration. Son extraction et son désassemblage permettent aux chercheurs et développeurs d'analyser en profondeur le fonctionnement du bootloader. Avec des versions évoluant en parallèle des mises à jour d'iOS, iBoot reflète les avancées en sécurité et en performance d'Apple.

Pour plus d'informations, consultez The Apple Wiki.