Aller au contenu
Aback Tools Logo

Analyseur class-dump et protocoles iOS

Collez du code d'en-tête Objective-C ou la sortie de class-dump pour analyser les interfaces de classe, les chaînes d'héritage, les protocoles (avec méthodes @required et @optional), les catégories, les signatures de méthodes et les déclarations de propriétés. L'analyseur visualise toute la surface d'API du code d'une application iOS avec des vues détaillées dépliables, une cartographie des chaînes d'héritage et un filtrage par onglets selon le type de déclaration. Tout le traitement est local et privé.

iOS Class-Dump / Protocol Analyzer
Paste Objective-C header code or class-dump output to analyze class interfaces, protocols, categories, method signatures, and property declarations. Visualize inheritance chains, protocol conformity, and the complete API surface of iOS application code.
Parsing is automatic
Examples:

Paste Objective-C header code above to analyze class interfaces, protocols, and categories. The parser extracts inheritance chains, method signatures, property declarations, and protocol conformity. Try loading an example to see how it works!

Fonctionnalités

  • Analyse complète des en-têtes ObjC : analyse tout le spectre des déclarations Objective-C : blocs @interface avec héritage (:), conformité de protocole (<...>), @protocol avec sections @required et @optional, catégories (@interface ClassName (Category)), déclarations @property avec attributs (nonatomic, strong, copy, readonly), méthodes d'instance (-) et de classe (+), et variables d'instance. Gère les signatures de types complexes, y compris les blocs, les génériques (NSArray<NSString *>) et les types qualifiés par protocole.
  • Visualisation des chaînes d'héritage et des protocoles : construit automatiquement les chaînes d'héritage montrant la hiérarchie de classes complète à partir des interfaces analysées. Chaque classe affiche sa superclasse et les protocoles adoptés avec des badges cliquables. Les dépendances de protocoles sont affichées avec des références aux protocoles parents. La vue d'héritage facilite la compréhension de la hiérarchie de classes de tout framework, bibliothèque ou base de code d'application iOS.
  • Vues détaillées des signatures de méthodes et des propriétés : dépliez n'importe quelle interface de classe pour voir sa surface d'API complète : propriétés avec attributs et types, méthodes d'instance avec types de retour et signatures de paramètres, méthodes de classe (méthodes de fabrique, singletons) et variables d'instance. Les protocoles affichent les méthodes @required vs @optional avec le même niveau de détail. Les catégories affichent leurs méthodes d'extension à côté du nom de classe d'origine.
  • 100 % local dans le navigateur et privé : toute l'analyse s'exécute entièrement dans votre navigateur. Le code d'en-tête Objective-C que vous collez, toutes les interfaces, protocoles, catégories, signatures de méthodes et déclarations de propriétés analysés ne sont jamais envoyés à un serveur. Aucun appel d'API, aucune collecte de données, aucun suivi. Totalement sûr pour l'analyse de code iOS propriétaire, de bibliothèques tierces ou d'en-têtes d'application confidentiels.

Cas d'usage

  • Rétro-ingénierie et analyse d'apps iOS : analysez les en-têtes d'applications iOS extraits via class-dump ou d'autres outils d'analyse Mach-O. Comprenez la hiérarchie de classes complète de n'importe quelle app iOS, y compris les frameworks privés, les SDK tiers et le binaire principal de l'application. Identifiez toutes les classes, leurs superclasses, les protocoles qu'elles adoptent, les méthodes qu'elles implémentent et les propriétés qu'elles exposent.
  • Recherche et documentation des API privées : explorez les en-têtes de frameworks privés iOS/macOS pour découvrir des classes, méthodes et propriétés non documentées. L'analyseur aide les chercheurs à comprendre la structure de frameworks privés comme SpringBoardServices, MobileCoreServices et GraphicsServices en analysant la sortie class-dump et en présentant la surface d'API dans un format propre et navigable.
  • Planification de l'intégration de SDK et de bibliothèques : lors de l'intégration de SDK ou de bibliothèques iOS tiers, collez les fichiers d'en-tête dans l'analyseur pour comprendre rapidement la surface d'API. Consultez la hiérarchie d'héritage, les adoptions de protocoles et les listes complètes de méthodes/propriétés en un coup d'œil. Comparez des classes similaires entre différentes versions de SDK pour identifier les changements d'API.
  • Développement de tweaks jailbreak et Theos : les développeurs jailbreak utilisent largement class-dump pour comprendre les classes qu'ils doivent hooker pour leurs tweaks. L'analyseur facilite la navigation dans les déclarations d'interface, la recherche des bonnes méthodes à swizzler et la compréhension des types de propriétés pour le hooking avec Theos ou Cydia Substrate. Essentiel pour la rétro-ingénierie iOS à petit budget.
  • Apprentissage du runtime et des motifs Objective-C : les étudiants en informatique et les développeurs iOS utilisent l'analyseur pour apprendre les motifs du runtime Objective-C. Voyez comment Apple conçoit les hiérarchies de classes avec la programmation orientée protocole, comment les motifs de délégation sont déclarés via des protocoles formels et comment les catégories étendent les classes sans créer de sous-classes.
  • Découverte de structures de classes obfusquées : lors de l'analyse d'applications iOS obfusquées, la sortie class-dump révèle la structure des classes même lorsque les noms de symboles sont brouillés. L'analyseur aide à identifier les classes principales, à comprendre l'architecture malgré l'obfuscation et à cartographier le graphe d'objets de l'application à partir des informations structurelles restantes.

Qu'est-ce que class-dump et pourquoi est-ce important ?

class-dump est un outil en ligne de commande qui examine le segment Objective-C des binaires Mach-O (exécutables iOS/macOS) et génère les fichiers d'en-tête Objective-C correspondants. Il fonctionne parce qu'Objective-C est un langage hautement introspectif - les noms de classes, méthodes, propriétés et protocoles sont stockés sous forme de chaînes de métadonnées dans les sections __objc_classlist, __objc_protolist et __objc_catlist du binaire. Notre analyseur class-dump / protocoles iOS simule cela en analysant la sortie class-dump ou des fichiers d'en-tête Objective-C bruts, en présentant la hiérarchie de classes, les définitions de protocoles et la surface d'API dans une interface propre et navigable. C'est essentiel pour comprendre le fonctionnement interne des frameworks iOS, analyser des applications tierces et faire de la rétro-ingénierie de logiciels iOS.

Comment fonctionne notre analyseur class-dump

  1. Collez ou chargez les données d'en-tête : collez du code d'en-tête Objective-C issu de la sortie class-dump, d'en-têtes extraits ou de votre propre code source. Le parseur gère les déclarations @interface, @protocol et @category avec héritage complet et conformité de protocole.
  2. Analyse et extraction automatiques : l'analyseur lit toutes les déclarations et extrait les noms de classes, superclasses, protocoles adoptés, méthodes (d'instance et de classe), déclarations de propriétés avec attributs et types, variables d'instance, ainsi que les méthodes de protocole optionnelles vs requises. Les chaînes d'héritage sont construites automatiquement.
  3. Explorez et analysez les résultats : parcourez toutes les déclarations via des onglets filtrables (Tous, Classes, Protocoles, Catégories). Dépliez n'importe quelle classe pour voir sa surface d'API complète. Consultez les chaînes d'héritage, les hiérarchies de protocoles et les signatures de méthodes avec types de retour et noms de paramètres. Copiez le rapport d'analyse pour votre documentation.

Comprendre les types de déclaration Objective-C

  • @interface (interface de classe) : déclare une classe avec sa superclasse (héritage via la syntaxe à deux-points) et les protocoles adoptés (entre chevrons). Contient des variables d'instance entre accolades, des déclarations @property pour l'API publique et des déclarations de méthodes avec types de retour et paramètres.
  • @protocol (définition de protocole) : déclare un protocole formel que les classes peuvent adopter. Les méthodes marquées @required doivent être implémentées par les classes conformes, tandis que les méthodes @optional peuvent être implémentées de manière sélective. Les protocoles peuvent également déclarer des exigences @property.
  • @interface (catégorie) : étend une classe existante avec des méthodes supplémentaires sans créer de sous-classe. Écrite sous la forme @interface ClassName (CategoryName), les catégories peuvent ajouter des méthodes et des propriétés à n'importe quelle classe - y compris les classes de framework dont vous n'avez pas le code source.
  • Déclarations de méthodes et de propriétés : les méthodes d'instance sont préfixées par -, les méthodes de classe par +. Les signatures de méthodes utilisent des deux-points pour les paramètres avec des libellés descriptifs. Les propriétés utilisent @property avec des attributs entre parenthèses (nonatomic, strong, copy, readonly, assign, weak, getter, setter) suivis du type et du nom.

Confidentialité, sécurité et notes d'utilisation

L'analyseur class-dump / protocoles iOS traite toutes les données entièrement dans votre navigateur à l'aide de JavaScript. Aucun code d'en-tête Objective-C n'est jamais envoyé à un serveur, stocké dans une base de données ou partagé avec un tiers. Il n'y a aucune limite de taille de fichier. L'outil est entièrement gratuit, sans inscription, sans limite d'utilisation et sans niveau premium. Utilisez-le à n'importe quelle fin - personnelle, commerciale, éducative ou de recherche en sécurité - sans frais. L'analyseur est conçu à des fins éducatives et de recherche pour aider les développeurs à comprendre la structure des applications iOS et le comportement du runtime Objective-C.

Foire aux questions

class-dump est un outil en ligne de commande qui génère des fichiers d'en-tête Objective-C à partir de binaires Mach-O (exécutables .app iOS/macOS, .dylib, bundles .framework). Il fonctionne en analysant les sections de métadonnées Objective-C stockées dans le segment __DATA du binaire : __objc_classlist, __objc_protolist, __objc_catlist et __objc_selrefs. Comme Objective-C est un langage à runtime dynamique, tous les noms de classes, méthodes, propriétés et informations de conformité de protocoles sont stockés sous forme de chaînes dans le binaire. class-dump lit ces métadonnées et reconstruit les déclarations @interface, @protocol et @category d'origine avec leurs méthodes et propriétés.

Non. Il s'agit d'un analyseur basé dans le navigateur qui analyse du texte d'en-tête Objective-C - il n'exécute pas l'outil class-dump réel sur des binaires Mach-O compilés. Pour utiliser cet outil, vous devez d'abord exécuter class-dump (ou un outil similaire comme Hopper, Ghidra ou otool) sur un binaire iOS/macOS pour générer la sortie d'en-tête Objective-C, puis coller cette sortie dans notre analyseur. L'analyseur visualise et organise ensuite les déclarations analysées dans une interface propre et navigable.

L'analyseur traite trois principaux types de déclarations. Les blocs @interface ... @end pour les déclarations de classe, y compris l'héritage (: SuperClass) et la conformité de protocole (<Protocol1, Protocol2>), avec variables d'instance, déclarations @property et méthodes d'instance/de classe. Les blocs @protocol ... @end pour les définitions de protocole avec sections @required et @optional, déclarations de méthodes et exigences @property. Les blocs @interface ClassName (CategoryName) ... @end pour les catégories qui étendent des classes existantes.

L'analyseur construit automatiquement les chaînes d'héritage en suivant la déclaration de superclasse (: SuperClass) de chaque @interface. Par exemple, si vous avez @interface MyViewController : UIViewController, @interface UIViewController : UIResponder et @interface UIResponder : NSObject, l'analyseur affichera : MyViewController → UIViewController → UIResponder → NSObject. Cela facilite la compréhension de la hiérarchie de classes complète.

Indirectement. Les classes Swift qui héritent de NSObject ou utilisent l'attribut @objc sont accessibles au runtime Objective-C et apparaîtront dans la sortie class-dump avec leurs signatures compatibles Objective-C. Toutefois, les classes Swift pures sans pont Objective-C n'apparaîtront pas dans la sortie class-dump. Notre analyseur est conçu pour la syntaxe d'en-tête Objective-C. Pour analyser du code Swift pur, utilisez plutôt notre outil Désobfuscateur Swift.

Vous avez besoin d'un appareil iOS jailbreaké ou d'un IPA déchiffré pour exécuter class-dump. Sur macOS, installez class-dump via Homebrew (brew install class-dump), puis exécutez : class-dump -H /chemin/vers/VotreBinaire -o /repertoire/de/sortie/. Pour les binaires iOS, vous devez d'abord déchiffrer le binaire de l'App Store à l'aide d'un outil comme dumpdecrypted ou Clutch. Les fichiers .h générés peuvent ensuite être collés dans notre analyseur pour visualisation et navigation.

Dans les protocoles Objective-C, les méthodes @required doivent être implémentées par toute classe qui adopte le protocole, tandis que les méthodes @optional peuvent être implémentées de manière sélective. La directive @required est la valeur par défaut. Lors de l'analyse de la sortie d'un protocole, l'analyseur sépare les méthodes requises et optionnelles en sections distinctes, ce qui clarifie quelles méthodes sont obligatoires pour la conformité au protocole et lesquelles sont des extensions optionnelles.

Oui - 100 % gratuit, sans inscription, sans compte et sans limite d'utilisation. Analysez autant d'en-têtes Objective-C que nécessaire, autant de fois que vous le souhaitez. Il n'y a pas de niveaux premium, de frais cachés ni de limites de débit. L'outil s'exécute entièrement dans votre navigateur - votre code ne quitte jamais votre appareil.