Analyseur de binaires Mach-O
Analysez les en-têtes de binaires Mach-O, les binaires universels FAT, les architectures de processeur, les commandes de chargement, les segments, les sections et les tables de symboles - le tout dans votre navigateur. Prend en charge les formats Mach-O 32 bits, 64 bits et FAT (universel) pour macOS, iOS et tous les binaires des plateformes Apple. Gratuit, privé et sans inscription.
Pourquoi utiliser notre analyseur de binaires Mach-O ?
- Prise en charge complète du format Mach-O : analyse toutes les variantes Mach-O, y compris 32 bits (MH_MAGIC), 64 bits (MH_MAGIC_64) et les binaires universels FAT (FAT_MAGIC). Détecte automatiquement l'ordre des octets (petit/gros boutiste) et gère les binaires simples comme multi-architectures.
- Détection des architectures de processeur : identifie toutes les principales architectures Apple, notamment arm64 (Apple Silicon), x86_64 (Intel 64 bits), i386 (Intel 32 bits), ARM et PowerPC. Affiche le type et sous-type de processeur ainsi que des détails propres à l'architecture avec des descriptions formatées.
- Inspecteur des commandes de chargement et des segments : décode toutes les commandes de chargement (LC_SEGMENT, LC_SYMTAB, LC_UUID, LC_BUILD_VERSION, LC_MAIN et plus de 40 autres). Affiche chaque segment avec ses sections, adresses virtuelles, offsets de fichier, drapeaux de protection et entrées de relocalisation dans des tableaux triables.
- 100 % privé - aucun téléversement requis : toute l'analyse Mach-O se fait entièrement dans votre navigateur. Téléversez un binaire ou collez des données hexadécimales — rien n'est envoyé à un serveur. Aucun compte, aucune inscription, aucun suivi. Exportez les résultats par copie ou téléchargement.
Cas d'usage courants de l'analyseur Mach-O
- Analyse de malwares et rétro-ingénierie : les analystes de sécurité utilisent l'analyseur Mach-O pour inspecter des binaires macOS et iOS suspects. Détectez si un binaire est un universel FAT masquant plusieurs architectures, inspectez les commandes de chargement à la recherche de dépendances dylib inhabituelles et examinez les drapeaux de section pour des permissions suspectes comme des régions mémoire inscriptibles et exécutables.
- Vérification et contrôles d'intégrité des binaires : vérifiez qu'un binaire Mach-O possède l'architecture de processeur attendue, contrôlez le drapeau PIE (exécutable indépendant de la position), inspectez la présence d'une signature de code et validez la correspondance d'UUID. Essentiel pour vérifier les chaînes de compilation et garantir le bon ciblage d'architecture.
- Analyse des symboles de débogage et du stripping : analysez si un binaire a été strippé en examinant la taille de la table de symboles et les commandes de chargement. Détectez les bundles dSYM associés, inspectez les entrées nlist pour identifier les symboles restants et déterminez si le binaire est signé et notarié.
- Détection d'obfuscation et de protection : identifiez les binaires Mach-O obfusqués ou protégés en détectant les sections chiffrées (LC_ENCRYPTION_INFO), en vérifiant les indicateurs fairplay/DRM, en examinant les attributs de section inhabituels et en analysant les anomalies de table de symboles courantes dans les binaires protégés.
- Validateur d'applications pour l'App Store macOS/iOS : validez les binaires d'applications iOS et macOS avant leur soumission à l'App Store. Vérifiez les architectures requises (arm64 pour iOS, arm64 + x86_64 pour les binaires universels macOS), contrôlez le bon sous-type de processeur et inspectez les exigences de version minimale du système sur chaque tranche Mach-O.
- Formation et recherche sur le format Mach-O : les étudiants et chercheurs peuvent explorer le format de fichier Mach-O de façon interactive. Chargez des binaires d'exemple pour voir comment fonctionne la structure d'en-tête Mach-O, comprendre les chaînes de commandes de chargement, explorer les relations segment/section et découvrir les entrées de table de symboles nlist.
Qu'est-ce qu'un binaire Mach-O ?
Mach-O (Mach Object) est le format exécutable natif utilisé par macOS, iOS, iPadOS, watchOS et tvOS. Il a remplacé l'ancien format a.out et constitue le format binaire standard de tous les systèmes d'exploitation Apple. Chaque application, framework, bibliothèque et outil en ligne de commande des plateformes Apple est empaqueté comme binaire Mach-O. Le format prend en charge plusieurs architectures de processeur dans un même fichier grâce au format binaire FAT (universel), avec le nombre magique 0xCAFEBABE. Les fichiers Mach-O contiennent un en-tête, une chaîne de commandes de chargement décrivant la structure du binaire et les données de segment proprement dites (code, données, tables de symboles, etc.).
Comment fonctionne l'analyseur Mach-O
- Détection de l'entrée : l'analyseur lit les 4 premiers octets (nombre magique) pour déterminer le format — 32 bits (0xFEEDFACE), 64 bits (0xFEEDFACF) ou universel FAT (0xCAFEBABE) — et détecte l'ordre des octets (petit boutiste pour Apple Silicon/Intel, gros boutiste pour PowerPC).
- Analyse de l'en-tête : l'en-tête Mach-O est analysé pour extraire le type de processeur, le sous-type de processeur, le type de fichier (exécutable, dylib, bundle, objet, etc.), le nombre de commandes de chargement et les drapeaux du binaire (PIE, NOUNDEFS, TWOLEVEL, etc.).
- Parcours des commandes de chargement : l'analyseur parcourt la chaîne de commandes de chargement et analyse chaque commande selon son type. Les commandes de segment (LC_SEGMENT/LC_SEGMENT_64) contiennent des sous-tables d'informations de section. D'autres commandes fournissent l'UUID, les versions minimales, les références de table de symboles, les offsets de signature de code, etc.
- Extraction de la table de symboles : si le binaire possède une commande LC_SYMTAB, l'analyseur lit les entrées nlist (struct nlist_64 pour le 64 bits) et résout les noms de symboles depuis la table de chaînes. Les 50 premiers symboles sont affichés avec leur type, numéro de section, drapeaux de description et valeurs d'adresse.
Concepts clés de Mach-O
- Binaire FAT (universel) : commence par la magie 0xCAFEBABE et contient plusieurs tranches Mach-O pour différentes architectures. Chaque tranche a son propre type de processeur, offset, taille et alignement. Les applications iOS comportent généralement des tranches arm64 ; les binaires universels macOS ont x86_64 + arm64 pour Intel et Apple Silicon.
- Commandes de chargement : suivent immédiatement l'en-tête Mach-O et décrivent la disposition du binaire. LC_SEGMENT définit les régions mémoire mappées depuis le fichier ; LC_SYMTAB pointe vers la table de symboles ; LC_UUID fournit un identifiant unique ; LC_BUILD_VERSION spécifie la plateforme cible et la version du SDK.
- Segments et sections : les segments (__TEXT, __DATA, __LINKEDIT) correspondent directement à des régions mémoire. Les sections au sein des segments (__text, __cstring, __objc_methlist) contiennent des types de contenu précis. Les drapeaux de type de section indiquent si une section contient du code, des littéraux de chaîne, des pointeurs de symboles ou des initialiseurs.
- Entrées de symboles nlist : chaque symbole de la table possède un nom (résolu via la table de chaînes), un type (indéfini, absolu, défini en section ou indirect), un numéro de section, des drapeaux de description et une valeur/adresse. Les symboles externes sont marqués N_EXT pour la résolution de l'édition de liens dynamique.
Confidentialité et limitations techniques
L'analyseur Mach-O traite toutes les données binaires entièrement dans votre navigateur en JavaScript. Aucune donnée n'est jamais téléversée sur un serveur. L'analyseur lit l'en-tête, les commandes de chargement, les structures de segments et sections et la table de symboles — mais ne désassemble pas le code exécutable, ne décompresse pas les binaires protégés et ne déchiffre pas les fichiers Mach-O chiffrés. Les binaires protégés par FairPlay (chiffrés App Store) afficheront les informations de chiffrement, mais leurs sections de code ne pourront pas être lues. Pour les très gros binaires (plus de 500 Mo), l'analyse peut être limitée par la mémoire du navigateur. L'analyseur est conçu pour un usage éducatif, la recherche en rétro-ingénierie et l'analyse de sécurité de fichiers que vous êtes légalement autorisé à inspecter.
Foire aux questions
Mach-O (Mach Object) est le format exécutable natif des systèmes d'exploitation Apple (macOS, iOS, watchOS, tvOS). Il utilise les nombres magiques 0xFEEDFACE (32 bits), 0xFEEDFACF (64 bits) et 0xCAFEBABE (binaire universel FAT). Contrairement à ELF (Linux/Android) et PE (Windows), Mach-O prend en charge les binaires FAT contenant plusieurs architectures dans un même fichier et utilise une chaîne de commandes de chargement pour décrire la disposition du binaire.
Vérifiez les quatre premiers octets (nombre magique) : 0xFEEDFACE pour le 32 bits, 0xFEEDFACF pour le 64 bits et 0xCAFEBABE pour les binaires universels FAT. Les extensions courantes sont .o (objet), .dylib (bibliothèque dynamique) et .bundle (bundle chargeable). Notre analyseur détecte et signale automatiquement le format lors du téléversement.
Un binaire FAT contient plusieurs exécutables Mach-O pour différentes architectures de processeur dans un seul fichier. L'en-tête FAT liste chaque architecture avec son type de processeur, son offset, sa taille et son alignement. Au chargement, le système d'exploitation sélectionne automatiquement la bonne architecture. Cela permet de distribuer un binaire unique qui s'exécute nativement sur les Mac Intel (x86_64) et Apple Silicon (arm64).
Les commandes de chargement décrivent la disposition du binaire : LC_SEGMENT définit les régions mémoire, LC_SYMTAB localise la table de symboles, LC_UUID fournit un identifiant unique, LC_BUILD_VERSION spécifie la plateforme cible et le SDK, LC_MAIN définit le point d'entrée, LC_ENCRYPTION_INFO indique l'état du DRM FairPlay et LC_CODE_SIGNATURE pointe vers les données de signature de code.
Oui. Il détecte les sections chiffrées via LC_ENCRYPTION_INFO (cryptid != 0), identifie les binaires strippés grâce à de petites tables de symboles, signale les permissions suspectes (segments inscriptibles et exécutables) et détecte des noms ou drapeaux de section inhabituels. Il indique aussi l'état PIE, le DRM FairPlay et la présence d'une signature de code.
Absolument. Tout le traitement se fait localement dans votre navigateur. Vos données binaires ne quittent jamais votre appareil, ne sont jamais envoyées à un serveur et ne sont jamais stockées. Aucun compte requis. Vous pouvez analyser en toute sécurité des binaires Mach-O propriétaires, confidentiels ou sensibles.
L'analyseur lit les en-têtes, les commandes de chargement, la disposition des segments et sections et les tables de symboles. Il ne désassemble pas le code, n'extrait pas les ressources intégrées et ne décompile pas le binaire. Il détecte en revanche la présence de métadonnées d'exécution Objective-C et Swift ainsi que des sections cstring.
L'analyseur prend en charge toutes les architectures Apple : arm64 (Apple Silicon), x86_64 (Intel 64 bits), i386 (Intel 32 bits), ARM (32 bits), PowerPC et PowerPC 64 bits. Les binaires FAT combinant n'importe lesquelles de ces architectures sont entièrement pris en charge.
Oui — 100 % gratuit, sans inscription, sans compte, sans limite d'utilisation et sans niveau premium. Toutes les fonctionnalités, y compris le téléversement de fichiers, la saisie hexadécimale, l'analyse FAT, le décodage des commandes de chargement, l'inspection des segments et l'extraction de la table de symboles, sont disponibles sans restriction.