Visualizador de bytecode DEX
Carregue um ficheiro DEX (Dalvik Executable) para ver a sua estrutura de bytecode, instruções Dalvik, opcodes, mnemónicas, uso de registos e definições de métodos. Analise a estrutura DEX completa, incluindo campos de cabeçalho, tabelas de cadeias, tabelas de tipos/protótipos/campos/métodos, definições de classes e desmontagem completa ao nível da instrução. Grátis, privado e sem cadastro.
Drop a DEX file here or click to browse
Supports .dex, .apk (extract classes.dex), and .odex files
Upload a DEX file to view its bytecode structure. The viewer parses the DEX header, string/type/proto/field/method tables, class definitions, and Dalvik bytecode instructions with full disassembly.
Por que usar o nosso visualizador de bytecode DEX?
- Análise completa da estrutura DEX: Analisa todo o formato de ficheiro DEX, incluindo cabeçalho, ID de cadeias, ID de tipos, ID de protótipos, ID de campos, ID de métodos, definições de classes e elementos de código. Veja cada elemento estrutural do seu ficheiro DEX com deslocamentos e tamanhos em bruto.
- Desmontagem completa do bytecode Dalvik: Desmonta as instruções Dalvik em mnemónicas legíveis com operandos de registo, referências de métodos, descritores de tipo e constantes de cadeia. Suporta todos os principais formatos de instrução, incluindo 35c (invoke) e 3rc (invoke/range).
- Explorador de árvore de classes e métodos: Navegue pelas classes e os seus métodos numa vista de árvore expansível. Veja os indicadores de acesso, a superclasse, as interfaces, o ficheiro fonte, o uso de registos e o bytecode ao nível da instrução de cada método. Expanda qualquer classe ou método para ver todos os detalhes.
- 100 % local no navegador e privado: Toda a análise e desmontagem DEX é executada inteiramente no seu navegador. O seu ficheiro DEX, as instruções de bytecode e a estrutura analisada nunca saem do seu dispositivo. Sem envios, sem servidores e sem rastreamento — totalmente seguro para analisar qualquer ficheiro DEX.
Casos de uso comuns do visualizador de bytecode DEX
- Análise de malware e engenharia inversa: Analise ficheiros APK Android em busca de comportamento malicioso examinando as instruções de bytecode Dalvik. Identifique chamadas a API suspeitas, nomes de métodos ofuscados e padrões de fluxo de controlo invulgares diretamente no bytecode — sem precisar de descompilar para Java.
- Auditoria de segurança de apps Android: Audite aplicações Android em busca de vulnerabilidades de segurança examinando o seu bytecode. Procure uso inseguro de API, credenciais codificadas na tabela de cadeias, verificações de permissões incorretas e exportações de componentes desprotegidas ao nível do bytecode DEX.
- Análise de ofuscação e empacotadores: Examine ficheiros DEX em busca de indicadores de ofuscação como nomes de classes/métodos invulgares, código com muita reflexão, métodos invocados dinamicamente, padrões de cifragem de cadeias e uso de carregadores de classes. A vista da tabela de cadeias ajuda a identificar cargas codificadas ou cifradas.
- Desenvolvimento e depuração Android: Os programadores Android podem examinar a saída DEX compilada para verificar as otimizações do ProGuard/R8, verificar a inclusão de métodos, compreender como as funcionalidades de Kotlin se compilam em bytecode e depurar problemas de compilação ao nível da instrução.
- Análise forense de apps Android: Os analistas forenses digitais podem examinar ficheiros DEX de dispositivos Android para compreender o comportamento das apps, recuperar constantes de cadeia e estruturas de classes e construir um quadro completo do que uma aplicação faz ao nível do bytecode.
- Estudo educativo do bytecode Dalvik: Aprenda como funciona a máquina virtual Dalvik explorando ficheiros DEX reais. Compreenda os formatos de instrução, a arquitetura baseada em registos, o despacho de métodos e a resolução de tipos. Perfeito para estudantes de internals do Android e design de compiladores.
O que é um ficheiro DEX?
Um ficheiro DEX (Dalvik Executable) é o formato de bytecode compilado usado pela máquina virtual Dalvik do Android e pela sua sucessora ART (Android Runtime). Todas as aplicações Android (ficheiro .apk) contêm um ou mais ficheiros classes.dex que guardam todo o código Java/Kotlin compilado. Ao contrário dos ficheiros de classe JVM padrão, que usam uma arquitetura baseada em pilha, os ficheiros DEX usam uma arquitetura baseada em registos em que as instruções operam sobre registos virtuais com nome (v0, v1, etc.). Este design baseado em registos permite uma interpretação mais eficiente do bytecode e melhor desempenho em dispositivos móveis. O formato DEX foi introduzido com a plataforma Android em 2007 e evoluiu através de várias versões (035, 037, 038, 039), cada uma acrescentando novos opcodes e funcionalidades de otimização.
Como funciona o nosso visualizador de bytecode DEX
O visualizador de bytecode DEX analisa o formato binário DEX completo e desmonta as instruções Dalvik em três etapas, inteiramente no seu navegador:
- Carregamento e análise binária: Carregue um ficheiro .dex (ou extraia classes.dex de um .apk). O visualizador lê o cabeçalho DEX para localizar todas as secções de dados e analisa os ID de cadeias, ID de tipos, ID de protótipos, ID de campos, ID de métodos e definições de classes segundo a especificação padrão do formato binário DEX.
- Desmontagem do bytecode: Para cada método que contém código, o visualizador lê a estrutura do elemento de código (número de registos, número de argumentos, matriz de instruções) e desmonta cada palavra de instrução de 16 bits. Cada opcode é mapeado para a sua mnemónica Dalvik (move, add-int, invoke-virtual, etc.), e os operandos são descodificados conforme o formato da instrução (12x, 35c, 3rc, etc.).
- Visualização estruturada: Os dados analisados são apresentados em quatro vistas: Classes (árvore expansível com métodos e bytecode), Métodos (tabela simples de todos os métodos com protótipos), Cadeias (todas as constantes de cadeia do ficheiro DEX) e Cabeçalho (todos os campos do cabeçalho DEX). Cada instrução mostra o seu deslocamento, bytes em bruto, mnemónica e operandos descodificados.
O que pode ver na estrutura DEX
- Cabeçalho DEX: número mágico (dex 035\0), soma de verificação, assinatura SHA-1, tamanho do ficheiro, tamanhos e deslocamentos de secção para todas as tabelas de dados.
- Conjunto de cadeias: todas as constantes de cadeia usadas no ficheiro DEX — nomes de classes, nomes de métodos, nomes de campos, cadeias de descritor e valores literais de cadeia usados em instruções const-string.
- Tabelas de tipos e protótipos: descritores de tipo (Ljava/lang/String;, I, [B, etc.) e definições de protótipos de métodos (tipo de retorno + tipos de parâmetros) que definem as assinaturas de métodos.
- Definições de classes: cada classe do DEX com indicadores de acesso (public, abstract, interface, enum), superclasse, interfaces, ficheiro fonte e listas de métodos diretos e virtuais.
- Bytecode dos métodos: listagens completas de instruções Dalvik com número de registos, registos de argumentos, blocos try-catch e desmontagem por instrução mostrando deslocamentos, opcodes, mnemónicas e operandos descodificados.
Privacidade e segurança
Esta ferramenta é executada inteiramente no seu navegador com JavaScript do lado do cliente. O ficheiro DEX que carrega, todo o bytecode analisado, as instruções desmontadas, as estruturas de classes, as tabelas de cadeias e os resultados da análise nunca são enviados para qualquer servidor, armazenados em qualquer base de dados ou transmitidos pela rede. Toda a análise, desmontagem e visualização é executada localmente no seu dispositivo. Não há chamadas a API, rastreamento analítico, cookies ou recolha de dados de qualquer tipo. Isto torna-a totalmente segura para analisar aplicações Android proprietárias, amostras de malware ou qualquer ficheiro DEX sensível.
Perguntas frequentes
Um ficheiro DEX (Dalvik Executable) contém o bytecode compilado das aplicações Android. Ver o bytecode DEX permite compreender exatamente o que uma app faz ao nível da instrução — útil para análise de malware, auditorias de segurança, engenharia inversa, depuração de problemas de compilação e aprendizagem de como funciona o bytecode Android.
Sim. Todos os APK Android contêm um ficheiro classes.dex que o visualizador de bytecode DEX consegue analisar. Extraia classes.dex de qualquer APK (com qualquer extrator ZIP) e carregue-o. O visualizador também aceita ficheiros .odex (DEX otimizado).
O desmontador suporta todos os principais formatos de instrução Dalvik, incluindo 10x, 11n, 12x, 21c, 22c, 22t, 23x, 35c, 3rc, 31i e 51l. São suportados mais de 200 opcodes em todas as categorias de instruções.
Não. O visualizador de bytecode DEX é executado inteiramente no seu navegador. O seu ficheiro DEX, todos os dados analisados, as instruções desmontadas e os resultados da análise nunca saem do seu dispositivo. Sem envios para servidores, chamadas a API e recolha de dados.
O visualizador ajuda a identificar a ofuscação mostrando os nomes reais de classes/métodos, as constantes de cadeia e os padrões de instruções. Os ficheiros DEX ofuscados têm tipicamente nomes curtos sem significado (a, b, c) visíveis nas tabelas de classes e métodos.
A tabela de cadeias mostra todas as constantes de cadeia incorporadas no ficheiro DEX, incluindo descritores de classe, nomes de métodos e campos, descritores de tipo, nomes de ficheiros fonte e valores literais de cadeia usados em instruções const-string.
Sim. Os métodos com tratamento de exceções mostram informação de blocos try-catch, incluindo o endereço inicial, o número de instruções e o tipo de manipulador (classe de exceção capturada ou catch-all).
O formato 35c codifica até 5 registos de argumentos de forma compacta. O formato 3rc usa codificação baseada em intervalos com um registo inicial e uma contagem, usado quando há muitos argumentos ou para intervalos de registos específicos.
Sim — 100 % gratuito, sem cadastro, sem conta e sem limites de uso. Analise tantos ficheiros DEX quantos precisar, quantas vezes quiser. Toda a análise é executada no seu navegador.