iOS Class-Dump- & Protokoll-Analysator
Füge Objective-C-Header-Code oder class-dump-Ausgaben ein, um Klasseninterfaces, Vererbungsketten, Protokolle (mit @required- und @optional-Methoden), Kategorien, Methodensignaturen und Property-Deklarationen zu analysieren. Der Parser visualisiert die komplette API-Oberfläche von iOS-Anwendungscode mit ausklappbaren Detailansichten, Vererbungsketten-Mapping und tab-basierter Filterung nach Deklarationstyp. Die gesamte Verarbeitung ist lokal und privat.
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!
Funktionen
- Vollständiges Parsing von ObjC-Headern: Parst das gesamte Spektrum von Objective-C-Deklarationen: @interface-Blöcke mit Vererbung (:), Protokollkonformität (<...>), @protocol mit @required- und @optional-Abschnitten, Kategorien (@interface ClassName (Category)), @property-Deklarationen mit Attributen (nonatomic, strong, copy, readonly), Instanzmethoden (-) und Klassenmethoden (+), sowie Instanzvariablen. Behandelt komplexe Typsignaturen inklusive Blöcke, Generics (NSArray<NSString *>) und protokollqualifizierte Typen.
- Visualisierung von Vererbungsketten und Protokollen: Baut automatisch Vererbungsketten auf, die die vollständige Klassenhierarchie aus den geparsten Interfaces zeigen. Jede Klasse zeigt ihre Superklasse und übernommenen Protokolle mit klickbaren Badges. Protokollabhängigkeiten werden mit Elternprotokollreferenzen angezeigt. Die Vererbungsansicht macht es leicht, die Klassenhierarchie beliebiger iOS-Frameworks, -Bibliotheken oder -Anwendungscodebasen zu verstehen.
- Detailansichten für Methodensignaturen und Properties: Klappe jedes Klasseninterface auf, um die vollständige API-Oberfläche zu sehen: Properties mit Attributen und Typen, Instanzmethoden mit Rückgabetypen und Parametersignaturen, Klassenmethoden (Factory-Methoden, Singletons) und Instanzvariablen. Protokolle zeigen @required- vs. @optional-Methoden mit demselben Detailgrad. Kategorien zeigen ihre Erweiterungsmethoden neben dem ursprünglichen Klassennamen.
- 100 % browserlokal und privat: Das gesamte Parsing und die Analyse laufen ausschließlich in deinem Browser. Der von dir eingefügte Objective-C-Header-Code, alle geparsten Interfaces, Protokolle, Kategorien, Methodensignaturen und Property-Deklarationen werden niemals auf einen Server hochgeladen. Keine API-Aufrufe, keine Datenerfassung, kein Tracking. Vollkommen sicher für die Analyse proprietären iOS-Codes, von Drittanbieterbibliotheken oder vertraulichen Anwendungsheadern.
Anwendungsfälle
- Reverse Engineering und Analyse von iOS-Apps: Analysiere iOS-Anwendungsheader, die über class-dump oder andere Mach-O-Analysetools extrahiert wurden. Verstehe die vollständige Klassenhierarchie beliebiger iOS-Apps, einschließlich privater Frameworks, Drittanbieter-SDKs und der Hauptanwendungsbinärdatei. Identifiziere alle Klassen, ihre Superklassen, übernommene Protokolle, implementierte Methoden und exponierte Properties.
- Recherche und Dokumentation privater APIs: Erkunde Header privater iOS/macOS-Frameworks, um undokumentierte Klassen, Methoden und Properties zu entdecken. Der Analysator hilft Forschern, die Struktur privater Frameworks wie SpringBoardServices, MobileCoreServices und GraphicsServices zu verstehen, indem er class-dump-Ausgaben parst und die API-Oberfläche in einem sauberen, navigierbaren Format präsentiert.
- Planung der SDK- und Bibliotheksintegration: Wenn du Drittanbieter-iOS-SDKs oder -Bibliotheken integrierst, füge die Header-Dateien in den Analysator ein, um die API-Oberfläche schnell zu verstehen. Sieh dir die Vererbungshierarchie, Protokollübernahmen und vollständige Methoden-/Property-Listen auf einen Blick an. Vergleiche ähnliche Klassen über verschiedene SDK-Versionen hinweg, um API-Änderungen zu identifizieren.
- Jailbreak-Tweak- und Theos-Entwicklung: Jailbreak-Entwickler nutzen class-dump umfangreich, um die Klassen zu verstehen, die sie für Tweaks hooken müssen. Der Analysator macht es leicht, Interface-Deklarationen zu durchsuchen, die richtigen Methoden zum Swizzling zu finden und Property-Typen für das Hooking mit Theos oder Cydia Substrate zu verstehen. Unverzichtbar für iOS-Reverse-Engineering mit kleinem Budget.
- Erlernen der Objective-C-Runtime und -Muster: Informatikstudierende und iOS-Entwickler nutzen den Analysator, um Objective-C-Runtime-Muster zu lernen. Sieh dir an, wie Apple Klassenhierarchien mit protokollorientierter Programmierung entwirft, wie Delegationsmuster durch formale Protokolle deklariert werden und wie Kategorien Klassen ohne Vererbung erweitern.
- Entdeckung verschleierter Klassenstrukturen: Bei der Analyse verschleierter iOS-Anwendungen offenbart die class-dump-Ausgabe die Klassenstruktur auch dann, wenn Symbolnamen unkenntlich gemacht wurden. Der Analysator hilft, die Kernklassen zu identifizieren, die Architektur trotz Verschleierung zu verstehen und den Objektgraphen der Anwendung aus den verbleibenden strukturellen Informationen abzubilden.
Was ist class-dump und warum ist es wichtig?
class-dump ist ein Kommandozeilentool, das das Objective-C-Segment von Mach-O-Binärdateien (iOS/macOS-Executables) untersucht und entsprechende Objective-C-Header-Dateien generiert. Es funktioniert, weil Objective-C eine hochgradig introspektive Sprache ist - Klassennamen, Methodennamen, Property-Namen und Protokolle werden als Metadaten-Strings in den Abschnitten __objc_classlist, __objc_protolist und __objc_catlist der Binärdatei gespeichert. Unser iOS Class-Dump- / Protokoll-Analysator simuliert dies, indem er class-dump-Ausgaben oder rohe Objective-C-Header-Dateien parst und die Klassenhierarchie, Protokolldefinitionen und API-Oberfläche in einer sauberen, navigierbaren Oberfläche präsentiert. Dies ist unerlässlich, um zu verstehen, wie iOS-Frameworks intern funktionieren, um Drittanbieteranwendungen zu analysieren und um iOS-Software zurückzuentwickeln.
So funktioniert unser Class-Dump-Analysator
- Header-Daten einfügen oder laden: Füge Objective-C-Header-Code aus class-dump-Ausgaben, extrahierten Headern oder deinem eigenen Quellcode ein. Der Parser verarbeitet @interface-, @protocol- und @category-Deklarationen mit vollständiger Vererbung und Protokollkonformität.
- Automatisches Parsing und Extrahieren: Der Analysator liest alle Deklarationen und extrahiert Klassennamen, Superklassen, übernommene Protokolle, Methoden (sowohl Instanz- als auch Klassenmethoden), Property-Deklarationen mit Attributen und Typen, Instanzvariablen sowie optionale vs. erforderliche Protokollmethoden. Vererbungsketten werden automatisch aufgebaut.
- Ergebnisse erkunden und analysieren: Durchsuche alle Deklarationen über filterbare Tabs (Alle, Klassen, Protokolle, Kategorien). Klappe jede Klasse auf, um ihre vollständige API-Oberfläche zu sehen. Sieh dir Vererbungsketten, Protokollhierarchien und Methodensignaturen mit Rückgabetypen und Parameternamen an. Kopiere den Analysebericht für deine Dokumentation.
Objective-C-Deklarationstypen verstehen
- @interface (Klasseninterface): Deklariert eine Klasse mit ihrer Superklasse (Vererbung über Doppelpunkt-Syntax) und übernommenen Protokollen (in spitzen Klammern). Enthält Instanzvariablen in geschweiften Klammern, @property-Deklarationen für die öffentliche API und Methodendeklarationen mit Rückgabetypen und Parametern.
- @protocol (Protokolldefinition): Deklariert ein formales Protokoll, das Klassen übernehmen können. Mit @required markierte Methoden müssen von konformen Klassen implementiert werden, während @optional-Methoden selektiv implementiert werden können. Protokolle können auch @property-Anforderungen deklarieren.
- @interface (Kategorie): Erweitert eine bestehende Klasse um zusätzliche Methoden, ohne eine Unterklasse zu erstellen. Geschrieben als @interface ClassName (CategoryName), können Kategorien Methoden und Properties zu jeder Klasse hinzufügen - auch zu Framework-Klassen, deren Quellcode du nicht hast.
- Methoden- und Property-Deklarationen: Instanzmethoden werden mit - präfixiert, Klassenmethoden mit +. Methodensignaturen verwenden Doppelpunkte für Parameter mit beschreibenden Labels. Properties verwenden @property mit Attributen in Klammern (nonatomic, strong, copy, readonly, assign, weak, getter, setter), gefolgt von Typ und Namen.
Datenschutz, Sicherheit und Nutzungshinweise
Der iOS Class-Dump- / Protokoll-Analysator verarbeitet alle Daten ausschließlich in deinem Browser mit JavaScript. Kein Objective-C-Header-Code wird jemals auf einen Server hochgeladen, in einer Datenbank gespeichert oder an Dritte weitergegeben. Es gibt keine Dateigrößenlimits. Das Tool ist völlig kostenlos, ohne Anmeldung, ohne Nutzungslimits und ohne Premium-Stufe. Nutze es für jeden Zweck - privat, kommerziell, zu Bildungszwecken oder für Sicherheitsforschung - ohne Kosten. Der Analysator ist für Bildungs- und Forschungszwecke konzipiert, um Entwicklern zu helfen, die Struktur von iOS-Anwendungen und das Verhalten der Objective-C-Runtime zu verstehen.
Häufig gestellte Fragen
class-dump ist ein Kommandozeilentool, das Objective-C-Header-Dateien aus Mach-O-Binärdateien (iOS/macOS-.app-Executables, .dylib, .framework-Bundles) generiert. Es funktioniert, indem es die im __DATA-Segment der Binärdatei gespeicherten Objective-C-Metadatenabschnitte parst: __objc_classlist, __objc_protolist, __objc_catlist und __objc_selrefs. Da Objective-C eine dynamische Runtime-Sprache ist, werden alle Klassennamen, Methodennamen, Property-Namen und Protokollkonformitätsinformationen als Strings in der Binärdatei gespeichert. class-dump liest diese Metadaten und rekonstruiert die ursprünglichen @interface-, @protocol- und @category-Deklarationen mit ihren Methoden und Properties.
Nein. Dies ist ein browserbasierter Parser, der Objective-C-Header-Text analysiert - er führt nicht das eigentliche class-dump-Tool auf kompilierten Mach-O-Binärdateien aus. Um dieses Tool zu nutzen, musst du zuerst class-dump (oder ein ähnliches Tool wie Hopper, Ghidra oder otool) auf einer iOS/macOS-Binärdatei ausführen, um die Objective-C-Header-Ausgabe zu erzeugen, und diese Ausgabe dann in unseren Analysator einfügen. Der Analysator visualisiert und organisiert die geparsten Deklarationen in einer sauberen, navigierbaren Oberfläche.
Der Analysator parst drei Haupttypen von Deklarationen. @interface ... @end-Blöcke für Klassendeklarationen inklusive Vererbung (: SuperClass) und Protokollkonformität (<Protocol1, Protocol2>), mit Instanzvariablen, @property-Deklarationen und Instanz-/Klassenmethoden. @protocol ... @end-Blöcke für Protokolldefinitionen mit @required- und @optional-Abschnitten, Methodendeklarationen und @property-Anforderungen. @interface ClassName (CategoryName) ... @end-Blöcke für Kategorien, die bestehende Klassen erweitern.
Der Analysator baut Vererbungsketten automatisch auf, indem er der Superklassen-Deklaration (: SuperClass) jedes @interface folgt. Wenn du zum Beispiel @interface MyViewController : UIViewController, @interface UIViewController : UIResponder und @interface UIResponder : NSObject hast, zeigt der Analysator: MyViewController → UIViewController → UIResponder → NSObject. So lässt sich die vollständige Klassenhierarchie leicht verstehen.
Indirekt. Swift-Klassen, die von NSObject erben oder das @objc-Attribut verwenden, sind für die Objective-C-Runtime zugänglich und erscheinen in der class-dump-Ausgabe mit ihren Objective-C-kompatiblen Signaturen. Reine Swift-Klassen ohne Objective-C-Bridge erscheinen jedoch nicht in der class-dump-Ausgabe. Unser Analysator ist für die Objective-C-Header-Syntax konzipiert. Für die Analyse reinen Swift-Codes verwende stattdessen unser Swift-Deobfuscator-Tool.
Du benötigst ein jailbroken iOS-Gerät oder eine entschlüsselte IPA, um class-dump auszuführen. Installiere auf macOS class-dump über Homebrew (brew install class-dump) und führe dann aus: class-dump -H /pfad/zu/DeinerBinärdatei -o /ausgabe/verzeichnis/. Für iOS-Binärdateien musst du zunächst die App-Store-Binärdatei mit einem Tool wie dumpdecrypted oder Clutch entschlüsseln. Die erzeugten .h-Dateien können dann zur Visualisierung und Navigation in unseren Analysator eingefügt werden.
In Objective-C-Protokollen müssen @required-Methoden von jeder Klasse implementiert werden, die das Protokoll übernimmt, während @optional-Methoden selektiv implementiert werden können. Die @required-Direktive ist die Standardeinstellung. Bei der Analyse von Protokollausgaben trennt der Analysator erforderliche und optionale Methoden in verschiedene Abschnitte, sodass klar ist, welche Methoden für die Protokollkonformität zwingend erforderlich und welche optionale Erweiterungen sind.
Ja - 100 % kostenlos, ohne Anmeldung, ohne Konto und ohne Nutzungsgrenzen. Analysiere so viele Objective-C-Header, wie du brauchst, so oft du willst. Es gibt keine Premium-Stufen, versteckten Kosten oder Ratenbegrenzungen. Das Tool läuft ausschließlich in deinem Browser - dein Code verlässt niemals dein Gerät.