Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
dexcalibur — [Oficial] Ferramenta de engenharia reversa para Android focada em automação de instrumentação dinâmica utilizando Frida. Ela desmonta dex, analisa estaticamente, gera hooks, descobre métodos refletidos, armazena dados interceptados e faz novas coisas a partir disso. Seu objetivo é ser uma plataforma completa de engenharia reversa para Android. | Kitploit
Ferramentas/GitHubGitHub/reversenseorg/dexcalibur
Segurança AndroidAnálise EstáticaAnálise Dinâmica (Sandboxing)Engenharia ReversaDepuradoresFuzzingSegurança MóvelAnálise de Binários

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

GitHub
reversenseorg/dexcalibur

dexcalibur

Ver Repositório
1.2k13024há 23 diasRevisado pelo Kitploit

[Oficial] Ferramenta de engenharia reversa para Android focada em automação de instrumentação dinâmica utilizando Frida. Ela desmonta dex, analisa estaticamente, gera hooks, descobre métodos refletidos, armazena dados interceptados e faz novas coisas a partir disso. Seu objetivo é ser uma plataforma completa de engenharia reversa para Android.

Compartilhar

Trabalho em andamento: Migrando para dexcalibur 2.0 | codinome: Reversense

npm dependencies npm npm Docker Automated build Build Status Twitter Follow PRs Welcome Maintainability

Dexcalibur banner

Dexcalibur

Dexcalibur é uma plataforma de engenharia reversa para Android focada em automação de instrumentação. Sua particularidade é usar análise dinâmica para melhorar heurísticas de análise estática. Tem como objetivo automatizar tarefas tediosas relacionadas à instrumentação dinâmica, tais como:

  • Descompilar/desmontar bytecode interceptado em tempo de execução
  • Escrever código de hook e gerenciar muitas mensagens de hook
  • Procurar padrões/coisas interessantes para hook
  • Processar dados coletados pelo hook (arquivo dex, método invocado, class loader, ...)
  • e assim por diante... Mas não só isso, porque Dexcalibur possui seu próprio mecanismo de análise estática e é capaz de executar partes parciais de smali.

Quer compartilhar algo ou precisa de ajuda? Junte-se aos nossos chats oficiais:

Telegram - a forma mais rápida de obter uma resposta

https://discord.gg/Pfw7Kc3dS

Documentação oficial disponível aqui (site - trabalho em andamento).

Veja as últimas notícias aqui : http://docs.dexcalibur.org/News.html

Mostrar vídeos de demonstração do Dexcalibur : Demo: Menos de 1 minuto para hookear 61 métodos? Sem problemas. (youtube)

Como apoiar o Dexcalibur?

Contribua!

Não hesite! Existem várias formas de contribuir:

  • Fazer um pull request relacionado a uma correção ou nova funcionalidade
  • Criar uma issue para ajudar a corrigir/melhorar ferramentas
  • Ajudar a desenvolver a interface do usuário
  • Enviar um e-mail com seu feedback
  • etc ...

A. Instalação

A.1 Nova instalação

Vá para Documento de instalação

Alternativa: usar Docker

  • on your host, install adb (and an Android emulator if appropriate)
  • docker-compose build android-dexcalibur
  • docker run --rm -it --net=host -v /tmp/dexcalibur:/shared -p 8000:8000 dexcalibur:2023.01 /bin/bash

A.2 Iniciar o Dexcalibur

Para Linux e MacOS

Instalação via NPM: Se o Dexcalibur foi instalado globalmente usando NPM (opção -g), então o Dexcalibur pode ser iniciado a partir do terminal executando $ dexcalibur, caso contrário, pode ser iniciado executando $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js.

Instalação a partir do código-fonte: a partir da pasta dexcalibur, execute $ dexcalibur ou $ node dexcalibur.js.

Para Windows

Instalação via NPM: Mesmo que o Dexcalibur esteja instalado globalmente usando NPM (opção -g), o Dexcalibur deve ser iniciado a partir do terminal executando o seguinte comando: node <NPM_ROOT>/dexcalibur/dexcalibur.js.

Instalação a partir do código-fonte: a partir da pasta dexcalibur, no terminal, execute o comando node dexcalibur.js.

A.3 Atualização

A partir da versão <= 0.6.x

Você está usando uma versão anterior do Dexcalibur?

Siga os mesmos passos de uma nova instalação e, quando for necessário inserir o caminho do workspace, insira a localização do seu workspace atual.

A partir da versão >= 0.7

Apenas executando:

$  npm install -g dexcalibur

A configuração e o workspace existentes serão detectados automaticamente.

C. Capturas de tela

As seguintes capturas de tela ilustram a atualização automática de xrefs em tempo de execução.

Xref auto update

Features

D. Funcionalidades e limitações

Atualmente, a maior limitação é que o Dexcalibur não é capaz de gerar código fonte de hook direcionado a funções nativas (em bibliotecas JNI). No entanto, você pode declarar manualmente um Interceptor do Frida editando um hook.

Considerando que o Dexcalibur não oferece (por enquanto) funcionalidades para analisar a parte nativa, como bibliotecas JNI ou JNA, apenas as funcionalidades e limitações relacionadas à parte Java foram detalhadas.

A precisão da análise depende da completude da imagem da API Android usada durante os primeiros passos da análise. Isso significa que, se você usar um arquivo DEX gerado a partir do arquivo Android.jar do Android SDK, algumas referências a métodos, campos ou classes internas da API Java do Android podem estar faltando. Resultados melhores são obtidos quando a análise começa a partir de um arquivo "boot.oat" extraído diretamente de um dispositivo real executando a versão esperada do Android.

D.1 Funcionalidades

D.1.A Analisador estático

TODO : write text

D.1.B Gerenciador de hooks

TODO : write text

D.1.C VM smali do Dexcalibur

Comportamentos rastreados

O analisador estático envolvido na ação "Executar smali (VM)" é capaz de descobrir e aceitar, mas rastrear os seguintes comportamentos:

  • Registro de destino fora dos limites (registro fora de v0 - v255)
  • Registro de origem fora dos limites (registro fora de v0 - v65535)
  • Detectar instrução inválida que lança implicitamente uma exceção interna
  • Detectar algum trecho de bytecode válido não conforme com a especificação do Android
  • Calcular comprimento de array indefinido
  • Preencher array indefinido
  • e mais ...

Atualmente, handlers/listeners para tais instruções inválidas não são suportados, mas os eventos são rastreados e renderizados.

IR do Dexcalibur

A VM produz uma Representação Intermediária (IR) customizada e simplificada que é exibida apenas para ajudar o analista a realizar sua análise.

Dependendo do valor da profundidade da callstack e da configuração, o IR pode incluir ou não instruções executadas dentro de funções chamadas. Se a execução entra em um bloco try e continua até o retorno, mas nunca executa o catch, então o bloco catch não será renderizado. Na verdade, o propósito do IR do Dexcalibur é renderizar apenas "o que é executado" ou "o que poderia ser executado dependendo do valor de algum símbolo" no contexto da VM.

O IR do Dexcalibur ajuda a ler uma versão limpa do bytecode removendo goto desnecessários e predicados opacos. O IR do Dexcalibur pode ser gerado pela VM com 2 níveis de simplificação:

1º nível de IR, pode ser usado se você não confia no 2º nível de IR:

  • Sem simplificação do CFG: saltos condicionais e incondicionais são renderizados.
  • Toda movimentação para um registrador é renderizada.

2º nível:

Baixar ferramenta