Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dexfinder — Cercatore di metodi APK/DEX multipiattaforma con tracciamento della catena di chiamate, deoffuscamento ProGuard e rilevamento di API nascoste | Kitploit
Strumenti/GitHubGitHub/junelegency/dexfinder
Sicurezza AndroidAnalisi StaticaAnalisi delle VulnerabilitàAnalisi del CodiceReverse EngineeringRaccolta InformazioniDevSecOpsSicurezza MobileAnalisi di Binari
GitHubjunelegency/dexfinder

dexfinder

Cercatore di metodi APK/DEX multipiattaforma con tracciamento della catena di chiamate, deoffuscamento ProGuard e rilevamento di API nascoste

9210316 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

dexfinder

Inglese | Cinese | Sito web dexfinder demo


Sito web: junelegency.github.io/dexfinder

Strumento multipiattaforma per la ricerca di riferimenti a metodi e campi in APK/DEX con tracciamento della catena di chiamate, deoffuscamento ProGuard/R8 e rilevamento di API nascoste Android.

Ispirato dallo strumento veridex di Android, reimplementato in Go con capacità migliorate: rilevamento più rapido della reflection, tracciamento della catena di chiamate (veridex mostra solo un livello) e formati di output flessibili.

Caratteristiche

  • Scansione APK/DEX/JAR — Analizza il bytecode DEX, estrae tutti i riferimenti a metodi/campi/stringhe
  • Ricerca multi-formato — Cerca per nome Java, firma DEX/JNI o parola chiave semplice
  • Tracciamento della catena di chiamate — Traccia i chiamanti fino a N livelli di profondità, albero unito o elenco piatto, con rilevamento di cicli
  • Deoffuscamento ProGuard/R8 — Carica mapping.txt, mostra i nomi originali accanto a quelli offuscati
  • Rilevamento API nascoste — Carica hiddenapi-flags.csv, rileva API bloccate/non supportate
  • Rilevamento reflection — Incrocia classi × stringhe per trovare l'uso di API nascoste basate su reflection
  • Output flessibile — text / json / model / html / sarif, layout ad albero/elenco, stile nome java/dex — tutto ortogonale
  • Output terminale a colori — Colori ANSI rilevati automaticamente per tag, connettori ad albero e livelli API
  • Diff APK — Confronta due versioni APK/DEX, rileva riferimenti API aggiunti/rimossi/modificati
  • Report HTML — HTML interattivo autonomo con alberi comprimibili, ricerca e tema scuro
  • Output SARIF — SARIF 2.1.0 per GitHub Code Scanning, VS Code e pipeline CI
  • Integrazione CI — --fail-on blocked termina con codice diverso da zero quando vengono trovate API ristrette
  • File di configurazione — .dexfinder.yaml per impostazioni predefinite del progetto, i flag CLI sovrascrivono
  • Zero dipendenze esterne — Puro Go, parser DEX autonomo
  • Multipiattaforma — macOS (Intel / Apple Silicon), Linux (amd64 / arm64), Windows

Installazione

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

**Script** (rileva automaticamente OS/arch):```bash
curl -sSL https://raw.githubusercontent.com/JuneLeGency/dexfinder/main/install.sh | bash

Go install:```bash go install github.com/JuneLeGency/dexfinder/cmd/dexfinder@latest

**Binario**: scarica da [Releases](https://github.com/JuneLeGency/dexfinder/releases).

## Avvio rapido```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

Formati di Query

Il flag --query accetta più stili di input. dexfinder rileva e converte automaticamente tra di essi.

FormatoEsempioComportamento
Simple namegetDeviceIdCorrispondenza fuzzy per sottostringa in tutte le API
Java classandroid.telephony.TelephonyManagerTutti i metodi/campi di quella classe
Java class#methodandroid.telephony.TelephonyManager#getDeviceIdTutti gli overload di quel metodo
Java full signature...TelephonyManager#getDeviceId()Esatta + fallback agli overload
DEX/JNI signatureLandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;Solo corrispondenza esatta

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"

## Controllo Output

Tre assi indipendenti, liberamente combinabili:```
--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

ValoreDescrizione
textOutput di testo semplice con tag colorati (predefinito)
jsonJSON — risultati di scansione o trace con layout ad albero/elenco
modelJSON strutturato con tipi MethodInfo/FieldInfo completi (per IDE/CI)
htmlReport HTML autonomo con alberi collassabili e ricerca
sarifFormato di analisi statica SARIF 2.1.0 (GitHub / VS Code)

--layout (usato con --trace)

ValoreDescrizione
treeAlbero unito — percorsi di chiamata condivisi collassati in un unico albero (predefinito)
listElenco piatto — ogni catena di chiamata unica mostrata come stack indipendente

--style

ValoreEsempioCaso d'uso
javacom.example.Foo.method(Foo.java)Leggibile dall'uomo (predefinito)
dexFoo.method(Ljava/lang/String;)VAnalisi precisa della firma

--scope (ambito di ricerca)

Controlla che tipo di riferimenti la query corrisponde. Questo è fondamentale per comprendere i risultati.

ValoreCosa cercaDomanda a cui rispondeTag di output
allAPI callee + campi + stringhe di codice"Chi chiama questa API?" (predefinito)[METHOD] [FIELD] [STRING]
calleeSolo firme API target nelle istruzioni invoke-* / get/put"Chi chiama questo specifico metodo/campo?"[METHOD] [FIELD]
callerSolo la firma del metodo chiamante"Cosa chiama internamente questo metodo?"[CALLER→]
stringCostanti stringa nelle istruzioni const-string"Dove viene usata questa stringa nel codice?"[STRING]
string-tableStringhe di codice + intera tabella stringhe DEX"Questa stringa esiste da qualche parte in DEX?" (include annotazioni, codice morto)[STRING] [STRING_TABLE]
everythingTutto quanto sopra combinatoQuadro completotutti i tag

Comprendere 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` (default) = `callee` + `string`. La direzione `caller` è intenzionalmente esclusa dal default perché risponde a una domanda fondamentalmente diversa. Usa `--scope=caller` o `--scope=everything` esplicitamente quando ne hai bisogno.

**Comprendere i tag di output:**
Scarica lo strumento