ASR
ASR (Apple System Restore) est une application présente dans les Ramdisks d’un fichier de firmware IPSW. Elle joue un rôle crucial dans le processus de restauration des appareils Apple en écrivant l’image rootfs (système de fichiers racine) sur le disque système de l’appareil (ASR RESTORE), puis en vérifiant son intégrité à l’aide d’une somme de contrôle (ASR VERIFY).
Fonctions principales
[edit | edit source]- ASR RESTORE :
- Écrit l’image du système de fichiers racine (rootfs) contenue dans le fichier IPSW sur le disque système de l’appareil, remplaçant ainsi l’ancien système par la nouvelle version.
- ASR VERIFY :
- Vérifie l’intégrité de l’image écrite en calculant une somme de contrôle pour s’assurer que les données transférées sont correctes et non corrompues.
Désassemblage d’ASR Verify
[edit | edit source]Voici un extrait du code désassemblé de la fonction ASR Verify, qui illustre la vérification de la signature de l’image :
__text:00014204 loc_14204 ; CODE XREF: sub_13AB4+61E↑j
__text:00014204 ; sub_13AB4+73E↑j
__text:00014204 LDR R3, =(off_235E8 - 0x1420A)
__text:00014206 ADD R3, PC
__text:00014208 LDR R3, [R3]
__text:0001420A LDR R3, [R3]
__text:0001420C CMP R3, #0
__text:0001420E BEQ loc_1427A
__text:00014210 LDR R0, =(aImagePassedSig - 0x14216)
__text:00014212 ADD R0, PC ; "Image passed signature verification"
__text:00014214 BLX _warnx
__text:00014218 B loc_1427A
__text:0001421A ; ---------------------------------------------------------------------------
__text:0001421A
__text:0001421A loc_1421A ; CODE XREF: sub_13AB4+622↑j
__text:0001421A ; sub_13AB4+628↑j ...
__text:0001421A LDR.W R0, =(aImageFailedSig - 0x14222)
__text:0001421A ADD R0, PC ; "Image failed signature verification"
__text:00014220 BLX _warnx
__text:00014224 MOVS R2, #0x50
__text:00014226 B loc_1426E
__text:00014228 ; ---------------------------------------------------------------------------
Analyse du désassemblage
[edit | edit source]- Vérification de la signature :
- Le code vérifie si l’image a passé la vérification de signature (
Image passed signature verification) ou non (Image failed signature verification). - Si la vérification réussit (
CMP R3, #0suivi deBEQ), un message de succès est affiché via la fonction_warnx. - En cas d’échec, un message d’erreur est affiché, et une valeur d’erreur (
0x50) est définie avant de passer à une autre partie du code (loc_1426E).
- Le code vérifie si l’image a passé la vérification de signature (
Conclusion
[edit | edit source]ASR est un composant clé du processus de restauration des appareils Apple, garantissant que le système de fichiers est correctement écrit et vérifié. La fonction ASR Verify joue un rôle crucial en validant l’intégrité et l’authenticité de l’image système à l’aide de signatures cryptographiques, assurant ainsi la sécurité du processus de restauration.
Pour plus d’informations, consultez The Apple Wiki.