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
dexfinder — Ferramenta multiplataforma para localização de métodos APK/DEX com rastreamento de cadeia de chamadas, desofuscação ProGuard e deteção de APIs ocultas | Kitploit
Ferramentas/GitHubGitHub/junelegency/dexfinder
Segurança AndroidAnálise EstáticaAnálise de VulnerabilidadesAnálise de CódigoEngenharia ReversaColeta de InformaçõesDevSecOpsSegurança MóvelAnálise de Binários
GitHubjunelegency/dexfinder

dexfinder

Ferramenta multiplataforma para localização de métodos APK/DEX com rastreamento de cadeia de chamadas, desofuscação ProGuard e deteção de APIs ocultas

921021há 5 mesesRevisado pelo Kitploit

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 →
Compartilhar
Ver Repositório

dexfinder

Inglês | Chinês | Site dexfinder demo


Site: junelegency.github.io/dexfinder

Localizador de referências de métodos e campos APK/DEX multiplataforma com rastreamento de cadeia de chamadas, desofuscação ProGuard/R8 e detecção de APIs ocultas do Android.

Inspirado pela ferramenta veridex do Android, reimplementada em Go com capacidades aprimoradas: detecção de reflexão mais rápida, rastreamento de cadeia de chamadas (o veridex mostra apenas um nível) e formatos de saída flexíveis.

Recursos

  • Varredura APK/DEX/JAR — Analisar bytecode DEX, extrair todas as referências de métodos/campos/strings
  • Consulta multi-formato — Pesquisar por nome Java, assinatura DEX/JNI ou palavra-chave simples
  • Rastreamento de cadeia de chamadas — Rastrear chamadores até N níveis de profundidade, árvore mesclada ou lista plana, com detecção de ciclos
  • Desofuscação ProGuard/R8 — Carregar mapping.txt, exibir nomes originais junto com os ofuscados
  • Detecção de API oculta — Carregar hiddenapi-flags.csv, detectar APIs bloqueadas/não suportadas
  • Detecção de reflexão — Cruzar classes × strings para encontrar uso de API oculta baseada em reflexão
  • Saída flexível — text / json / model / html / sarif, layout em árvore / lista, estilo de nome java / dex — tudo ortogonal
  • Saída colorida no terminal — Cores ANSI detectadas automaticamente para tags, conectores de árvore e níveis de API
  • Diferença APK — Comparar duas versões de APK/DEX, detectar referências de API adicionadas/removidas/alteradas
  • Relatórios HTML — HTML interativo autossuficiente com árvores recolhíveis, pesquisa e tema escuro
  • Saída SARIF — SARIF 2.1.0 para GitHub Code Scanning, VS Code e pipelines de CI
  • Integração CI — --fail-on blocked sair com código diferente de zero quando APIs restritas são encontradas
  • Arquivo de configuração — .dexfinder.yaml para padrões do projeto, flags de CLI sobrescrevem
  • Zero dependências externas — Go puro, analisador DEX autossuficiente
  • Multiplataforma — macOS (Intel / Apple Silicon), Linux (amd64 / arm64), Windows

Instalar

Homebrew (macOS / Linux):```bash brew install junelegency/tap/dexfinder

**Script** (detecta automaticamente SO/arquitetura):```bash
curl -sSL https://raw.githubusercontent.com/JuneLeGency/dexfinder/main/install.sh | bash

Instalação com Go:```bash go install github.com/JuneLeGency/dexfinder/cmd/dexfinder@latest

**Binário**: baixe dos [Lançamentos](https://github.com/JuneLeGency/dexfinder/releases).

## Início Rápido```bash
# Show APK overview
dexfinder --dex-file app.apk --stats

# Find all calls to getDeviceId (IMEI)
dexfinder --dex-file app.apk --query "getDeviceId"

# Trace call chains as merged tree
dexfinder --dex-file app.apk --query "getDeviceId" --trace

# Trace as flat call stacks (Java crash style)
dexfinder --dex-file app.apk --query "getDeviceId" --trace --layout list

# Exact JNI signature query
dexfinder --dex-file app.apk \
  --query "Landroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;" \
  --trace --depth 8

# Hidden API detection
dexfinder --dex-file app.apk --api-flags hiddenapi-flags.csv

Formatos de Consulta

A flag --query aceita múltiplos estilos de entrada. O dexfinder detecta e converte automaticamente entre eles.

FormatoExemploComportamento
Nome simplesgetDeviceIdCorrespondência difusa por substring em todas as APIs
Classe Javaandroid.telephony.TelephonyManagerTodos os métodos/campos dessa classe
Classe Java#métodoandroid.telephony.TelephonyManager#getDeviceIdTodas as sobrecargas desse método
Assinatura completa Java...TelephonyManager#getDeviceId()Correspondência exata + fallback de sobrecarga
Assinatura DEX/JNILandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;Correspondência exata apenas

All equivalent — find requestLocationUpdates in LocationManager:

dexfinder --dex-file app.apk --query "requestLocationUpdates" dexfinder --dex-file app.apk --query "android.location.LocationManager#requestLocationUpdates" dexfinder --dex-file app.apk --query "Landroid/location/LocationManager;->requestLocationUpdates(Ljava/lang/String;JFLandroid/location/LocationListener;)V"

## Controle de Saída

Três eixos independentes, livremente combináveis:```
--format  (text / json / model / html / sarif)    what to output
--layout  (tree / list)                           how to arrange traces
--style   (java / dex)                            how to display names
--color   (auto / always / never)                 terminal colors

--format

ValorDescrição
textSaída de texto simples com tags coloridas (padrão)
jsonJSON — resultados de varredura ou rastreamento com layout em árvore/lista
modelJSON estruturado com tipos completos MethodInfo/FieldInfo (para IDE/CI)
htmlRelatório HTML autossuficiente com árvores recolhíveis e pesquisa
sarifFormato de análise estática SARIF 2.1.0 (GitHub / VS Code)

--layout (usado com --trace)

ValorDescrição
treeÁrvore mesclada — caminhos de chamada compartilhados colapsados em uma árvore (padrão)
listLista plana — cada cadeia de chamada única mostrada como pilha independente

--style

ValorExemploCaso de uso
javacom.example.Foo.method(Foo.java)Legível para humanos (padrão)
dexFoo.method(Ljava/lang/String;)VAnálise precisa de assinatura

--scope (escopo de pesquisa)

Controla que tipo de referências a consulta corresponde. Isto é crítico para compreender os resultados.

ValorO que pesquisaPergunta que respondeTag de saída
allAPIs de destino + campos + strings de código"Quem chama esta API?" (padrão)[METHOD] [FIELD] [STRING]
calleeApenas assinaturas de API de destino nas instruções invoke-* / get/put"Quem chama este método/campo específico?"[METHOD] [FIELD]
callerApenas a assinatura do método chamador"O que este método chama internamente?"[CALLER→]
stringConstantes de string em instruções const-string"Onde esta string é usada no código?"[STRING]
string-tableStrings de código + tabela completa de strings DEX"Esta string existe em algum lugar no DEX?" (inclui anotações, código morto)[STRING] [STRING_TABLE]
everythingTudo acima combinadoQuadro completotodas as tags

Compreendendo callee vs caller:``` scope=callee: "Who calls finish()?" onCreate ──calls──→ finish() ← these callers are shown onResume ──calls──→ finish()

scope=caller: "What does finish() call internally?" finish() ──calls──→ Log.i() ← these callees are shown finish() ──calls──→ super.finish()

`--scope=all` (padrão) = `callee` + `string`. A direção `caller` é intencionalmente excluída do padrão porque responde a uma pergunta fundamentalmente diferente. Use `--scope=caller` ou `--scope=everything` explicitamente quando precisar.

**Entendendo as tags de saída:**
Baixar ferramenta