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
dexcalibur — [Officiel] Outil de rétro-ingénierie Android axé sur l'automatisation de l'instrumentation dynamique exploitant Frida. Il désassemble le dex, l'analyse statiquement, génère des hooks, découvre les méthodes réfléchies, stocke les données interceptées et en tire de nouvelles choses. Son objectif est d'être une plateforme tout-en-un de rétro-ingénierie Android. | Kitploit
Outils/GitHubGitHub/reversenseorg/dexcalibur
Sécurité AndroidAnalyse StatiqueAnalyse Dynamique (Sandboxing)Rétro-ingénierieDébogueursFuzzingSécurité MobileAnalyse de Binaires

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 →

À propos

GitHub
reversenseorg/dexcalibur

dexcalibur

Voir le dépôt
1.2k13024il y a 23 joursVérifié par Kitploit

[Officiel] Outil de rétro-ingénierie Android axé sur l'automatisation de l'instrumentation dynamique exploitant Frida. Il désassemble le dex, l'analyse statiquement, génère des hooks, découvre les méthodes réfléchies, stocke les données interceptées et en tire de nouvelles choses. Son objectif est d'être une plateforme tout-en-un de rétro-ingénierie Android.

Partager

WiP : Passage à dexcalibur 2.0 | nom de code : Reversense

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

Dexcalibur banner

Dexcalibur

Dexcalibur est une plateforme de rétro-ingénierie Android axée sur l'automatisation de l'instrumentation. Sa particularité est d'utiliser l'analyse dynamique pour améliorer les heuristiques d'analyse statique. Il vise à automatiser les tâches fastidieuses liées à l'instrumentation dynamique, telles que :

  • Décompiler/désassembler le bytecode intercepté à l'exécution
  • Écrire du code de hook et gérer un grand nombre de messages de hook
  • Rechercher des motifs intéressants / éléments à hooker
  • Traiter les données collectées par le hook (fichier dex, méthode invoquée, chargeur de classe, ...)
  • et ainsi de suite... Mais pas seulement cela, car Dexcalibur possède son propre moteur d'analyse statique et est capable d'exécuter des morceaux partiels de smali.

Vous voulez partager quelque chose ou avez besoin d'aide ? Rejoignez nos discussions officielles :

Telegram - le moyen le plus rapide d'obtenir une réponse

https://discord.gg/Pfw7Kc3dS

La documentation officielle est disponible ici (site web - en cours de développement).

Voir les dernières nouvelles ici : http://docs.dexcalibur.org/News.html

Voir les vidéos de démonstration de Dexcalibur : Démo : Moins d'une minute pour hooker 61 méthodes ? Pas un problème. (youtube)

Comment soutenir Dexcalibur ?

Contribuez !

N'hésitez pas ! Il y a plusieurs façons de contribuer :

  • Faire une pull request liée à une correction ou une nouvelle fonctionnalité
  • Créer une issue pour m'aider à corriger/impliquer des outils
  • M'aider à développer l'interface utilisateur
  • M'envoyer un email avec vos retours
  • etc ...

A. Installation

A.1 Nouvelle installation

Aller à la doc d'installation

Alternative : utiliser Docker

  • sur votre hôte, installez adb (et un émulateur Android si approprié)
  • 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 Lancer dexcalibur

Pour Linux et macOS

Installation via NPM : Si Dexcalibur a été installé globalement avec NPM (option -g), alors Dexcalibur peut être lancé depuis le terminal en faisant $ dexcalibur, sinon il peut être lancé par $ node $(node root -g dexcalibur)/dexcalibur/dexcalibur.js.

Installation depuis les sources : depuis le dossier dexcalibur, exécutez $ dexcalibur ou $ node dexcalibur.js.

Pour Windows

Installation via NPM : Même si Dexcalibur a été installé globalement avec NPM (option -g), Dexcalibur doit être lancé depuis le terminal en exécutant la commande suivante node <NPM_ROOT>/dexcalibur/dexcalibur.js.

Installation depuis les sources : depuis le dossier dexcalibur, dans le terminal, exécutez la commande node dexcalibur.js.

A.3 Mise à jour

Depuis la version <= 0.6.x

Vous utilisez une version précédente de Dexcalibur ?

Suivez les mêmes étapes qu'une nouvelle installation, et lorsque vous devrez entrer le chemin de l'espace de travail, entrez l'emplacement de votre espace de travail actuel.

Depuis la version >= 0.7

Simplement en faisant :

$  npm install -g dexcalibur

La configuration et l'espace de travail existants seront détectés automatiquement.

C. Captures d'écran

Les captures d'écran suivantes illustrent la mise à jour automatique des xrefs à l'exécution.

Mise à jour automatique des xrefs

Fonctionnalités

D. Fonctionnalités et limitations

Actuellement, la plus grande limitation est que Dexcalibur n'est pas capable de générer du code source de hook ciblant une fonction native (dans une bibliothèque JNI). Cependant, vous pouvez déclarer manuellement un Interceptor de Frida en éditant un hook.

Étant donné que Dexcalibur ne fournit pas (pour le moment) de fonctionnalités pour analyser la partie native telle que la bibliothèque JNI ou JNA, seules les fonctionnalités et limitations liées à la partie Java ont été détaillées.

La précision de l'analyse dépend de l'exhaustivité de l'image de l'API Android utilisée lors des premières étapes de l'analyse. Cela signifie que si vous utilisez un fichier DEX généré à partir du fichier Android.jar du SDK Android, certaines références à des méthodes, champs ou classes internes de l'API Java Android peuvent manquer. De meilleurs résultats sont obtenus lorsque l'analyse démarre à partir d'un fichier "boot.oat" extrait directement d'un appareil réel exécutant la version Android attendue.

D.1 Fonctionnalités

D.1.A Analyseur statique

TODO : écrire du texte

D.1.B Gestionnaire de hooks

TODO : écrire du texte

D.1.C VM smali de Dexcalibur

Comportements suivis

L'analyseur statique impliqué dans l'action "Exécuter smali (VM)" est capable de découvrir et d'accepter mais aussi de suivre les comportements suivants :

  • Registre de destination hors limites (registre hors de v0 - v255)
  • Registre source hors limites (registre hors de v0 - v65535)
  • Détecter une instruction invalide lançant implicitement une exception interne
  • Détecter un morceau de bytecode valide non conforme à la spécification Android
  • Calculer la longueur d'un tableau non défini
  • Remplir un tableau non défini
  • et plus encore ...

Actuellement, les gestionnaires/écouteurs pour une telle instruction invalide ne sont pas pris en charge, mais les événements sont suivis et rendus.

IR Dexcalibur

La VM produit une représentation intermédiaire (IR) personnalisée et simplifiée qui est affichée uniquement pour aider l'analyste à effectuer son analyse.

Selon la valeur de la profondeur de la pile d'appels et de la configuration, l'IR peut inclure ou non les instructions exécutées dans la fonction appelée. Si l'exécution entre dans un bloc try et continue jusqu'au retour, mais n'exécute jamais le catch, alors le bloc catch ne sera pas rendu. En fait, le but de l'IR Dexcalibur est de rendre uniquement "ce qui est exécuté" ou "ce qui pourrait être exécuté en fonction de la valeur d'un symbole" dans le contexte de la VM.

L'IR Dexcalibur aide à lire une version nettoyée du bytecode en supprimant les goto inutiles et les prédicats opaques. L'IR Dexcalibur peut être généré par la VM avec 2 niveaux de simplification :

1er niveau d'IR, pourrait être utilisé si vous ne faites pas confiance au 2e niveau d'IR :

Télécharger l’outil