Analisador de class-dump e protocolos de iOS
Cole código de cabeçalho Objective-C ou a saída do class-dump para analisar interfaces de classe, cadeias de herança, protocolos (com métodos @required e @optional), categorias, assinaturas de métodos e declarações de propriedades. O analisador visualiza toda a superfície de API do código de um aplicativo iOS com visualizações detalhadas expansíveis, mapeamento de cadeias de herança e filtragem por abas conforme o tipo de declaração. Todo o processamento é local e privado.
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!
Recursos
- Análise completa de cabeçalhos ObjC: analisa todo o espectro de declarações Objective-C: blocos @interface com herança (:), conformidade de protocolo (<...>), @protocol com seções @required e @optional, categorias (@interface NomeDaClasse (Categoria)), declarações @property com atributos (nonatomic, strong, copy, readonly), métodos de instância (-) e de classe (+) e variáveis de instância. Lida com assinaturas de tipos complexas, incluindo blocks, generics (NSArray<NSString *>) e tipos qualificados por protocolo.
- Visualização de cadeias de herança e protocolos: constrói automaticamente cadeias de herança mostrando a hierarquia completa de classes a partir das interfaces analisadas. Cada classe exibe sua superclasse e os protocolos adotados com badges clicáveis. As dependências de protocolos são mostradas com referências a protocolos pais. A visualização de herança facilita entender a hierarquia de classes de qualquer framework, biblioteca ou base de código de aplicativo iOS.
- Visualizações detalhadas de assinaturas de métodos e propriedades: expanda qualquer interface de classe para ver sua superfície de API completa: propriedades com atributos e tipos, métodos de instância com tipos de retorno e assinaturas de parâmetros, métodos de classe (métodos de fábrica, singletons) e variáveis de instância. Os protocolos exibem métodos @required vs @optional com o mesmo nível de detalhe. As categorias mostram seus métodos de extensão ao lado do nome da classe original.
- 100% local no navegador e privado: toda a análise roda inteiramente no seu navegador. O código de cabeçalho Objective-C que você cola, todas as interfaces, protocolos, categorias, assinaturas de métodos e declarações de propriedades analisados nunca são enviados a qualquer servidor. Sem chamadas de API, sem coleta de dados, sem rastreamento. Completamente seguro para analisar código iOS proprietário, bibliotecas de terceiros ou cabeçalhos de aplicativos confidenciais.
Casos de uso
- Engenharia reversa e análise de apps iOS: analise cabeçalhos de aplicativos iOS extraídos via class-dump ou outras ferramentas de análise Mach-O. Entenda a hierarquia completa de classes de qualquer app iOS, incluindo frameworks privados, SDKs de terceiros e o binário principal do aplicativo. Identifique todas as classes, suas superclasses, os protocolos que adotam, os métodos que implementam e as propriedades que expõem.
- Pesquisa e documentação de APIs privadas: explore cabeçalhos de frameworks privados de iOS/macOS para descobrir classes, métodos e propriedades não documentados. O analisador ajuda pesquisadores a entender a estrutura de frameworks privados como SpringBoardServices, MobileCoreServices e GraphicsServices, analisando a saída do class-dump e apresentando a superfície de API em um formato limpo e navegável.
- Planejamento de integração de SDKs e bibliotecas: ao integrar SDKs ou bibliotecas iOS de terceiros, cole os arquivos de cabeçalho no analisador para entender rapidamente a superfície de API. Veja a hierarquia de herança, as adoções de protocolos e as listagens completas de métodos/propriedades num relance. Compare classes semelhantes entre diferentes versões de SDK para identificar mudanças na API.
- Desenvolvimento de tweaks de jailbreak e Theos: desenvolvedores de jailbreak usam o class-dump extensivamente para entender as classes que precisam hookar para seus tweaks. O analisador facilita navegar pelas declarações de interface, encontrar os métodos certos para swizzling e entender os tipos de propriedades para hooking com Theos ou Cydia Substrate. Essencial para engenharia reversa de iOS com orçamento limitado.
- Aprendizado do runtime e dos padrões de Objective-C: estudantes de ciência da computação e desenvolvedores iOS usam o analisador para aprender padrões do runtime de Objective-C. Veja como a Apple projeta hierarquias de classes com programação orientada a protocolos, como os padrões de delegação são declarados por meio de protocolos formais e como as categorias estendem classes sem criar subclasses.
- Descoberta de estrutura de classes ofuscadas: ao analisar aplicativos iOS ofuscados, a saída do class-dump revela a estrutura de classes mesmo quando os nomes dos símbolos estão embaralhados. O analisador ajuda a identificar as classes principais, entender a arquitetura apesar da ofuscação e mapear o grafo de objetos do aplicativo a partir das informações estruturais restantes.
O que é o class-dump e por que ele é importante?
O class-dump é uma ferramenta de linha de comando que examina o segmento Objective-C de binários Mach-O (executáveis de iOS/macOS) e gera os arquivos de cabeçalho Objective-C correspondentes. Ele funciona porque Objective-C é uma linguagem altamente introspectiva - nomes de classes, métodos, propriedades e protocolos são armazenados como strings de metadados nas seções __objc_classlist, __objc_protolist e __objc_catlist do binário. Nosso Analisador de class-dump e protocolos de iOS simula isso analisando a saída do class-dump ou arquivos de cabeçalho Objective-C brutos, apresentando a hierarquia de classes, as definições de protocolos e a superfície de API em uma interface limpa e navegável. Isso é essencial para entender como os frameworks de iOS funcionam internamente, analisar aplicativos de terceiros e fazer engenharia reversa de software iOS.
Como funciona nosso Analisador de class-dump
- Cole ou carregue os dados de cabeçalho: cole código de cabeçalho Objective-C da saída do class-dump, de cabeçalhos extraídos ou do seu próprio código-fonte. O parser lida com declarações @interface, @protocol e @category com herança completa e conformidade de protocolo.
- Análise e extração automáticas: o analisador lê todas as declarações e extrai nomes de classes, superclasses, protocolos adotados, métodos (tanto de instância quanto de classe), declarações de propriedades com atributos e tipos, variáveis de instância e métodos de protocolo opcionais vs obrigatórios. As cadeias de herança são construídas automaticamente.
- Explore e analise os resultados: navegue por todas as declarações por meio de abas filtráveis (Todos, Classes, Protocolos, Categorias). Expanda qualquer classe para ver sua superfície de API completa. Veja cadeias de herança, hierarquias de protocolos e assinaturas de métodos com tipos de retorno e nomes de parâmetros. Copie o relatório de análise para sua documentação.
Entendendo os tipos de declaração Objective-C
- @interface (interface de classe): declara uma classe com sua superclasse (herança via sintaxe de dois-pontos) e os protocolos adotados (entre colchetes angulares). Contém variáveis de instância entre chaves, declarações @property para a API pública e declarações de métodos com tipos de retorno e parâmetros.
- @protocol (definição de protocolo): declara um protocolo formal que as classes podem adotar. Métodos marcados como @required devem ser implementados pelas classes conformes, enquanto métodos @optional podem ser implementados seletivamente. Os protocolos também podem declarar requisitos de @property.
- @interface (categoria): estende uma classe existente com métodos adicionais sem criar subclasses. Escrita como @interface NomeDaClasse (NomeDaCategoria), as categorias podem adicionar métodos e propriedades a qualquer classe - incluindo classes de framework cujo código-fonte você não tem.
- Declarações de métodos e propriedades: os métodos de instância levam o prefixo -, os métodos de classe levam +. As assinaturas de métodos usam dois-pontos para parâmetros com rótulos descritivos. As propriedades usam @property com atributos entre parênteses (nonatomic, strong, copy, readonly, assign, weak, getter, setter) seguidos do tipo e do nome.
Privacidade, segurança e notas de uso
O Analisador de class-dump e protocolos de iOS processa todos os dados inteiramente no seu navegador usando JavaScript. Nenhum código de cabeçalho Objective-C é jamais enviado a qualquer servidor, armazenado em qualquer banco de dados ou compartilhado com terceiros. Não há limites de tamanho de arquivo. A ferramenta é totalmente gratuita, sem cadastro, sem limites de uso e sem nível premium. Use-a para qualquer finalidade - pessoal, comercial, educacional ou pesquisa de segurança - sem custo. O analisador foi projetado com fins educacionais e de pesquisa para ajudar desenvolvedores a entender a estrutura de aplicativos iOS e o comportamento do runtime de Objective-C.
Perguntas frequentes
O class-dump é uma ferramenta de linha de comando que gera arquivos de cabeçalho Objective-C a partir de binários Mach-O (executáveis .app de iOS/macOS, .dylib, pacotes .framework). Ele funciona analisando as seções de metadados Objective-C armazenadas no segmento __DATA do binário: __objc_classlist, __objc_protolist, __objc_catlist e __objc_selrefs. Como Objective-C é uma linguagem com runtime dinâmico, todos os nomes de classes, métodos, propriedades e informações de conformidade de protocolos são armazenados como strings no binário. O class-dump lê esses metadados e reconstrói as declarações @interface, @protocol e @category originais com seus métodos e propriedades.
Não. Este é um analisador baseado no navegador que analisa texto de cabeçalho Objective-C - ele não executa a ferramenta class-dump real em binários Mach-O compilados. Para usar esta ferramenta, você primeiro precisa executar o class-dump (ou uma ferramenta similar como Hopper, Ghidra ou otool) em um binário de iOS/macOS para gerar a saída de cabeçalho Objective-C e então colar essa saída no nosso analisador. O analisador então visualiza e organiza as declarações analisadas em uma interface limpa e navegável.
O analisador processa três tipos principais de declarações. Blocos @interface ... @end para declarações de classe, incluindo herança (: SuperClasse) e conformidade de protocolo (<Protocolo1, Protocolo2>), com variáveis de instância, declarações @property e métodos de instância/classe. Blocos @protocol ... @end para definições de protocolo com seções @required e @optional, declarações de métodos e requisitos de @property. Blocos @interface NomeDaClasse (NomeDaCategoria) ... @end para categorias que estendem classes existentes.
O analisador constrói automaticamente cadeias de herança seguindo a declaração de superclasse (: SuperClasse) de cada @interface. Por exemplo, se você tem @interface MeuViewController : UIViewController, @interface UIViewController : UIResponder e @interface UIResponder : NSObject, o analisador exibirá: MeuViewController → UIViewController → UIResponder → NSObject. Isso facilita entender a hierarquia completa de classes.
Indiretamente. As classes Swift que herdam de NSObject ou usam o atributo @objc são acessíveis ao runtime de Objective-C e aparecerão na saída do class-dump com suas assinaturas compatíveis com Objective-C. No entanto, classes Swift puras sem ponte Objective-C não aparecerão na saída do class-dump. Nosso analisador foi projetado para a sintaxe de cabeçalho Objective-C. Para analisar código Swift puro, use nossa ferramenta Desofuscador de Swift.
Você precisa de um dispositivo iOS com jailbreak ou de um IPA descriptografado para executar o class-dump. No macOS, instale o class-dump via Homebrew (brew install class-dump) e então execute: class-dump -H /caminho/para/SeuBinario -o /diretorio/de/saida/. Para binários de iOS, você primeiro precisa descriptografar o binário da App Store com uma ferramenta como dumpdecrypted ou Clutch. Os arquivos .h gerados podem então ser colados no nosso analisador para visualização e navegação.
Nos protocolos Objective-C, os métodos @required devem ser implementados por qualquer classe que adote o protocolo, enquanto os métodos @optional podem ser implementados seletivamente. A diretiva @required é o padrão. Ao analisar a saída de um protocolo, o analisador separa os métodos obrigatórios e opcionais em seções distintas, deixando claro quais métodos são obrigatórios para a conformidade do protocolo e quais são extensões opcionais.
Sim - 100% grátis, sem cadastro, sem conta e sem limites de uso. Analise quantos cabeçalhos Objective-C precisar, quantas vezes quiser. Não há níveis premium, cobranças ocultas nem limites de taxa. A ferramenta roda inteiramente no seu navegador - seu código nunca sai do seu dispositivo.