Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dexfinder — Outil multi-plateforme de recherche de méthodes APK/DEX avec traçage de chaînes d'appels, désobfuscation ProGuard et détection d'API cachées. | Kitploit
Outils/GitHubGitHub/junelegency/dexfinder
Sécurité AndroidAnalyse StatiqueAnalyse des VulnérabilitésAnalyse de CodeRétro-ingénierieCollecte d'InformationsDevSecOpsSécurité MobileAnalyse de Binaires
GitHubjunelegency/dexfinder

dexfinder

Outil multi-plateforme de recherche de méthodes APK/DEX avec traçage de chaînes d'appels, désobfuscation ProGuard et détection d'API cachées.

921021il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

dexfinder

English | 中文 | Site web dexfinder demo


Site web : junelegency.github.io/dexfinder

Recherche de références de méthodes et de champs dans les APK/DEX multiplateforme, avec traçage des chaînes d’appels, désobfuscation ProGuard/R8 et détection des API cachées Android.

Inspiré de l’outil veridex d’Android, réimplémenté en Go avec des fonctionnalités améliorées : détection plus rapide des réflexions, traçage des chaînes d’appels (veridex n’affiche qu’un seul niveau) et formats de sortie flexibles.

Fonctionnalités

  • Scan APK/DEX/JAR — Analyse le bytecode DEX, extrait toutes les références de méthodes/champs/chaînes
  • Recherche multi-format — Recherche par nom Java, signature DEX/JNI ou mot-clé simple
  • Traçage des chaînes d’appels — Trace les appelants jusqu’à N niveaux de profondeur, arbre fusionné ou liste plate, avec détection de cycles
  • Désobfuscation ProGuard/R8 — Charge mapping.txt, affiche les noms originaux à côté des noms obfusqués
  • Détection des API cachées — Charge hiddenapi-flags.csv, détecte les API bloquées/non supportées
  • Détection de réflexion — Croise les classes × chaînes pour trouver les utilisations d’API cachées basées sur la réflexion
  • Sortie flexible — texte / json / model / html / sarif, disposition arbre / liste, style java / dex — tous orthogonaux
  • Sortie terminal colorée — Couleurs ANSI détectées automatiquement pour les balises, les connecteurs d’arbre et les niveaux d’API
  • Diff APK — Compare deux versions d’APK/DEX, détecte les références d’API ajoutées/supprimées/modifiées
  • Rapports HTML — HTML interactif autonome avec arbres repliables, recherche et thème sombre
  • Sortie SARIF — SARIF 2.1.0 pour GitHub Code Scanning, VS Code et pipelines CI
  • Intégration CI — --fail-on blocked se termine avec un code non nul lorsque des API restreintes sont trouvées
  • Fichier de configuration — .dexfinder.yaml pour les valeurs par défaut du projet, les options CLI prévalent
  • Zéro dépendances externes — Go pur, analyseur DEX autonome
  • Multiplateforme — macOS (Intel / Apple Silicon), Linux (amd64 / arm64), Windows

Installation

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

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

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

**Binary**: télécharger depuis [Releases](https://github.com/JuneLeGency/dexfinder/releases).

## Démarrage rapide```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

Formats de requête

Le flag --query accepte plusieurs formats d'entrée. dexfinder détecte et convertit automatiquement entre eux.

FormatExempleComportement
Nom simplegetDeviceIdCorrespondance floue par sous-chaîne sur toutes les API
Classe Javaandroid.telephony.TelephonyManagerToutes les méthodes/champs de cette classe
Classe Java#méthodeandroid.telephony.TelephonyManager#getDeviceIdToutes les surcharges de cette méthode
Signature Java complète...TelephonyManager#getDeviceId()Exact + repli de surcharge
Signature DEX/JNILandroid/telephony/TelephonyManager;->getDeviceId()Ljava/lang/String;Correspondance exacte uniquement

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"

## Contrôle de la sortie

Trois axes indépendants, librement combinables :```
--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

ValeurDescription
textSortie texte brut avec balises colorées (par défaut)
jsonJSON — résultats d'analyse ou trace avec disposition arborescente/liste
modelJSON structuré avec types complets MethodInfo/FieldInfo (pour IDE/CI)
htmlRapport HTML autonome avec arbres repliables et recherche
sarifFormat d'analyse statique SARIF 2.1.0 (GitHub / VS Code)

--layout (utilisé avec --trace)

ValeurDescription
treeArbre fusionné — chemins d'appel partagés réduits à un seul arbre (par défaut)
listListe plate — chaque chaîne d'appel unique affichée comme pile indépendante

--style

ValeurExempleCas d'utilisation
javacom.example.Foo.method(Foo.java)Lisible par l'humain (par défaut)
dexFoo.method(Ljava/lang/String;)VAnalyse précise des signatures

--scope (portée de recherche)

Contrôle le type de références que la requête vérifie. Ceci est crucial pour comprendre les résultats.

ValeurCe qu'il rechercheQuestion à laquelle il répondBalise de sortie
allAPIs cibles + champs + chaînes de code« Qui appelle cette API ? » (par défaut)[METHOD] [FIELD] [STRING]
calleeUniquement les signatures d'API cibles dans les instructions invoke-* / get/put« Qui appelle cette méthode/champ spécifique ? »[METHOD] [FIELD]
callerUniquement la signature de la méthode appelante« Que cette méthode appelle-t-elle en interne ? »[CALLER→]
stringConstantes chaîne dans les instructions const-string« Où cette chaîne est-elle utilisée dans le code ? »[STRING]
string-tableChaînes de code + table de chaînes DEX complète« Cette chaîne existe-t-elle quelque part dans le DEX ? » (inclut annotations, code mort)[STRING] [STRING_TABLE]
everythingTout ce qui précède combinéVue d'ensembletoutes les balises

Comprendre la distinction entre callee et 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` (par défaut) = `callee` + `string`. La direction `caller` est délibérément exclue du comportement par défaut car elle répond à une question fondamentalement différente. Utilisez `--scope=caller` ou `--scope=everything` explicitement lorsque vous en avez besoin.
Télécharger l’outil