Pular para o conteúdo
Aback Tools Logo

Analisador do pool de constantes Java

Envie um arquivo .class Java para extrair e analisar todas as constantes do pool de constantes. Veja strings, referências de classe, assinaturas de métodos, referências de campos e constantes numéricas organizadas por categoria com descrições detalhadas e dados hexadecimais brutos. Todo o processamento é local e privado.

Java Constant Pool Analyzer
Upload a Java .class file to extract and analyze all constants from the constant pool. View strings, class references, method signatures, field references, and numeric constants organized by category with detailed descriptions and raw hex data.

Upload a Java .class file

Drag and drop or click to browse. All processing is local and private.

Por que usar nosso Analisador do pool de constantes Java?

  • Extração completa do pool de constantes: o analisador do pool de constantes Java analisa todas as entradas do pool de constantes de qualquer arquivo .class: strings UTF-8, referências de classe, referências de método, referências de campo, referências de método de interface, descritores nome-e-tipo, constantes int, float, long e double, method handles, tipos de método, entradas invoke dynamic e informações de módulo/pacote.
  • Análise da hierarquia de classes e métodos: identifique instantaneamente esta classe e sua superclasse com seus nomes totalmente qualificados nos formatos interno (com/example/MyClass) e Java (com.example.MyClass). Veja todas as classes referenciadas, assinaturas de métodos, assinaturas de campos e literais de string extraídos do pool de constantes.
  • Filtragem e pesquisa inteligentes: filtre entradas do pool de constantes por categoria: strings, classes, referências (método/campo/interface), constantes numéricas e descritores de tipos. Pesquise em todas as entradas por índice, nome de etiqueta ou texto de descrição. O analisador do pool de constantes facilita encontrar exatamente o que você precisa em arquivos com centenas de entradas.
  • 100% privado - sem upload de dados: toda a análise de arquivos de classe acontece localmente no seu navegador usando JavaScript. Seus arquivos .class nunca saem do seu dispositivo. Sem necessidade de conta, sem rastreamento e sem dados armazenados em lugar algum. Exporte a tabela do pool de constantes como TSV para análises adicionais em planilhas.

Casos de uso comuns do Analisador do pool de constantes Java

  • Engenharia reversa e análise de malware: pesquisadores de segurança usam a análise do pool de constantes para entender aplicativos Java ofuscados ou protegidos. Extraia todos os literais de string, nomes de classes e referências de métodos de arquivos .class desconhecidos para reconstruir a estrutura do aplicativo e identificar chamadas de API suspeitas ou uso de bibliotecas.
  • Detecção e análise de ofuscação: ferramentas de ofuscação Java renomeiam classes, métodos e campos para nomes sem sentido. O analisador do pool de constantes revela esses identificadores renomeados e mostra o mapeamento completo das referências. ProGuard, DashO e outras tentativas de ofuscação ficam visíveis por meio de padrões de nomes incomuns no pool de constantes.
  • Depuração de conflitos de dependências: ao depurar conflitos de classpath ou exceções NoSuchMethodError, nosso analisador do pool de constantes ajuda a identificar contra qual versão de uma biblioteca um arquivo .class foi compilado. Assinaturas de métodos e referências de campos no pool de constantes revelam a superfície de API exata esperada pelo código compilado.
  • Validação e compatibilidade de arquivos de classe: verifique se os arquivos .class estão bem formados e confira sua compatibilidade com a versão do Java. O analisador do pool de constantes valida o número mágico (0xCAFEBABE), analisa as informações de versão e lê todas as entradas do pool de constantes de forma estrutural. Detecte arquivos de classe corrompidos ou adulterados antes da implantação.
  • Aprendizado do formato de arquivo de classe Java: estudantes de ciência da computação e desenvolvedores Java usam o analisador do pool de constantes para entender o formato de arquivo de classe Java. Veja como a JVM armazena classes, métodos, campos e constantes de string. Explore a estrutura do pool de constantes de forma interativa para desenvolver intuição sobre bytecode e carregamento de classes.
  • Extração de strings e recursos: extraia todas as strings codificadas de arquivos de classe Java compilados sem precisar de um descompilador completo. O analisador do pool de constantes revela todos os literais de string, nomes de classes e descritores de tipos - valioso para análise rápida de código compilado, strings de localização ou constantes de configuração embutidas em arquivos .class.

O que é o pool de constantes Java?

O pool de constantes é uma estrutura de dados crítica em cada arquivo .class Java. Ele serve como tabela de símbolos contendo todas as constantes, nomes de classes, nomes de métodos, nomes de campos, descritores de tipos e literais de string referenciados pelo bytecode. Localizado logo após o cabeçalho de versão do arquivo de classe, o pool de constantes é indexado a partir de 1 e é referenciado em todo o restante do arquivo de classe. A JVM usa esse pool durante o carregamento de classes e a execução do bytecode para resolver referências simbólicas em seus valores reais de tempo de execução. Nosso analisador do pool de constantes torna tudo isso visível e pesquisável.

Como funciona nosso Analisador do pool de constantes Java

  1. Envie um arquivo .class: basta enviar qualquer arquivo de classe Java compilado. O analisador lê os bytes brutos e valida o número mágico (0xCAFEBABE) e o cabeçalho de versão para confirmar que é um formato de arquivo de classe Java válido.
  2. Análise automática do pool de constantes: o analisador percorre todas as entradas do pool de constantes, decodificando cada uma conforme seu tipo de etiqueta. Cada entrada é categorizada como string, referência de classe, referência de método/campo, descritor de tipo, constante numérica ou outro tipo de entrada. Todas as entradas são indexadas com seus dados hexadecimais brutos para verificação.
  3. Explore e filtre os resultados: navegue pela tabela completa do pool de constantes com filtragem inteligente por categoria. Pesquise em todas as entradas, veja estatísticas de resumo incluindo contagens de entradas por tipo, classes referenciadas, assinaturas de métodos e literais de string extraídos. Copie a tabela para análises adicionais.

Tipos de entrada do pool de constantes explicados

  • Utf8 (CONSTANT_Utf8): o tipo de entrada mais comum, representando strings codificadas em UTF-8 usadas para nomes de classes, nomes de métodos, nomes de campos e descritores de tipos. Eles formam os blocos de construção de todos os outros tipos de referência do pool de constantes.
  • Referências de classe e string: as entradas Class apontam para strings Utf8 contendo nomes internos de classe (por exemplo, java/lang/Object). As entradas String referenciam strings Utf8 representando constantes literais de string usadas no bytecode.
  • Referências de método, campo e método de interface: essas entradas de índice triplo combinam uma referência Class, um descritor NameAndType e o tipo de etiqueta para qualificar completamente um acesso a membro. Os MethodRefs representam chamadas de métodos virtuais, enquanto os InterfaceMethodRefs representam o despacho de interface.
  • NameAndType: emparelha um nome de membro (por exemplo, «toString») com seu descritor de tipo (por exemplo, «()Ljava/lang/String;») para identificar de forma única um campo ou método sem especificar a classe proprietária. São referenciados pelas entradas Fieldref, Methodref e InterfaceMethodref.

Privacidade, segurança e notas de uso

O analisador do pool de constantes Java processa todos os dados inteiramente no seu navegador usando JavaScript. Nenhum arquivo .class é jamais enviado a qualquer servidor, armazenado em qualquer banco de dados ou compartilhado com terceiros. Não há limite de tamanho de arquivo além da memória disponível do seu navegador. Arquivos de classe de qualquer tamanho podem ser analisados instantaneamente. 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.

Perguntas frequentes

O pool de constantes é uma tabela de constantes, referências simbólicas e literais de string armazenada em cada arquivo .class Java. Ele funciona como tabela de símbolos em tempo de execução para a JVM, contendo nomes de classes, nomes de métodos, nomes de campos, descritores de tipos, constantes de string e constantes numéricas. Todas as instruções de bytecode referenciam entradas do pool de constantes por seu índice, tornando-o a estrutura de dados mais importante do formato de arquivo de classe.

O analisador extrai todos os tipos de entrada do pool de constantes: strings UTF-8 (nomes de classes, nomes de métodos, descritores), referências de classe, referências de método, referências de campo, referências de método de interface, descritores nome-e-tipo, constantes numéricas int/float/long/double, method handles, tipos de método, entradas invoke dynamic e referências de módulo/pacote. Cada entrada inclui seu índice, tipo de etiqueta, descrição legível e dados hexadecimais brutos.

Não, o analisador do pool de constantes não é um descompilador. Ele extrai a tabela de símbolos do arquivo de classe, mostrando todos os valores constantes, referências de classe e assinaturas de métodos. Ele não reconstrói instruções de bytecode nem descompila os corpos dos métodos. Para descompilação completa, você precisaria de uma ferramenta como CFR, Procyon ou JD-GUI.

0xCAFEBABE é o número mágico que identifica arquivos de classe Java válidos. Todo arquivo .class deve começar com esses quatro bytes. Se um arquivo não começar com 0xCAFEBABE, não é um arquivo de classe Java válido. O analisador do pool de constantes verifica esse número mágico primeiro e reporta um erro se ele estiver ausente, evitando a análise de arquivos não-classe ou dados corrompidos.

Nomes de classe internos usam barras como separadores de pacote (por exemplo, java/lang/String), enquanto o código-fonte Java usa pontos (java.lang.String). O pool de constantes armazena os nomes de classe no formato interno. Nosso analisador exibe ambos os formatos: o nome interno bruto na tabela e o formato Java separado por pontos no resumo de informações da classe.

No formato de arquivo de classe Java, as entradas CONSTANT_Long e CONSTANT_Double ocupam dois índices consecutivos do pool de constantes. Esse é um design legado das primeiras especificações da JVM para se alinhar aos requisitos de armazenamento de 8 bytes. Quando você vê lacunas na numeração de índices do pool de constantes, provavelmente é porque uma entrada Long ou Double foi lida, consumindo dois slots.

Com certeza. O analisador do pool de constantes Java processa tudo localmente no seu navegador usando JavaScript. Seus arquivos .class nunca são enviados a qualquer servidor, armazenados em qualquer banco de dados ou transmitidos pela rede. Toda a análise acontece no seu dispositivo para privacidade total. Isso torna seguro analisar código proprietário, bibliotecas confidenciais ou aplicativos ofuscados.

Sim - 100% grátis, sem cadastro, sem conta e sem limites de uso. Analise quantos arquivos .class precisar, quantas vezes quiser. Não há níveis premium, cobranças ocultas nem limites de taxa. A ferramenta roda inteiramente no seu navegador - seus arquivos nunca saem do seu dispositivo.