Introduction
À l'occasion de la WWDC 2025, Apple a annoncé macOS 26 Tahoe, introduisant un nouveau format d'image disque : ASIF. Conçu pour une utilisation avec des machines virtuelles, ASIF s'inspire de formats de disque virtuel existants. Il s'agit d'un format de disque virtuel sparse, similaire aux fichiers sparse VMDK, VHDX ou QCOW2, permettant de stocker un grand disque ou un fichier dans un espace plus petit de manière « sparse ».
Contexte Technique
Pour comprendre le fonctionnement d'ASIF, nous allons créer un fichier de test à l'aide de la commande fournie dans la documentation d'Apple, écrire un motif de test et commencer l'analyse. Le processus implique l'utilisation de l'utilitaire diskutil pour créer et attacher l'image disque, puis l'écriture d'un motif de test dans le fichier à l'aide de Python.
En examinant les hexadump, nous pouvons identifier une sorte de « magic » de fichier, suivie de grands entiers en big-endian. La recherche de ces « magic bytes » en ligne ne donne pas beaucoup d'informations utiles. Nous allons ensuite essayer de déduire la structure du fichier en analysant les entiers et en utilisant des outils tels que dissect.cstruct pour inspecter la structure du header.
Analyse et Implications
Après avoir identifié certains champs intéressants dans le header, tels que des tailles de secteur et des offsets, nous recherchons un binaire à reverse-engineering pour obtenir plus d'informations. Nous utilisons grep pour trouver des références à « ASIF » dans les frameworks d'Apple et identifions diskimagescontroller comme un candidat prometteur.
En analysant les chaînes de caractères du binaire, nous trouvons des messages de journal, des signatures de fonction et des noms de types liés à ASIF. Nous utilisons ensuite IDA pour reverse-engineering le binaire et comprendre la structure du header ASIF.
Perspective
Cette analyse nous permet de mieux comprendre le format d'image sparse d'Apple et son fonctionnement. Cependant, il est important de noter que les détails du format peuvent varier et que d'autres recherches sont nécessaires pour une compréhension complète. Les limites de cette analyse incluent la disponibilité des informations et les complexités du processus de reverse-engineering.