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
redexer — Le framework d'instrumentation binaire Redexer pour le bytecode Dalvik | Kitploit
Outils/GitHubGitHub/plum-umd/redexer
Sécurité AndroidAnalyse StatiqueAnalyse Dynamique (Sandboxing)Rétro-ingénierieAnalyse de BinairesArticles et RechercheApprentissage et Éducation
GitHubplum-umd/redexer

redexer

Le framework d'instrumentation binaire Redexer pour le bytecode Dalvik

Voir le dépôt
1743121il y a 5 ansVé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
Site web

Build Status

redexer

Redexer est un outil de réingénierie qui manipule les binaires d'applications Android. Cet outil peut analyser un fichier DEX en une structure de données en mémoire ; identifier avec quels paramètres l'application utilise certaines permissions (nous appelons cette fonctionnalité RefineDroid) ; modifier et désanalyser cette structure de données pour produire un fichier DEX de sortie (nous appelons ces fonctionnalités Dr. Android, pour Dalvik Rewriting for Android).

Publications

  • Dr. Android and Mr. Hide: Fine-grained Permissions in Android Applications. Jinseong Jeon, Kristopher K. Micinski, Jeffrey A. Vaughan, Ari Fogel, Nikhilesh Reddy, Jeffrey S. Foster, and Todd Millstein. Dans ACM CCS Workshop on Security and Privacy in Smartphones and Mobile Devices (SPSM '12), Oct 2012.

Prérequis

  • OCaml et Ruby

Cet outil est testé sous OCaml 4.09.0 et Ruby 1.8.6(7), vous devez donc les installer (ou des versions supérieures).

  • Gestionnaire de paquets/bibliothèques OCaml et bibliothèque SHA

Pour manipuler une signature SHA-1 (hash) au format DEX, nous utilisons la bibliothèque OCaml SHA via ocamlfind/findlib, un gestionnaire de bibliothèques OCaml. Le moyen le plus simple d'installer les deux est d'utiliser OPAM, un gestionnaire de paquets OCaml, qui propose les deux paquets---OPAM ocamlfind et OPAM sha.

Vous pouvez également compiler et/ou installer les deux paquets directement. Si vous utilisez une machine Linux, vous pouvez facilement trouver des distributions.

Sinon, par exemple sur Mac, vous devez les compiler vous-même. Vous trouverez les codes sources originaux ici. Compilez-les en exécutant make, puis liez le répertoire résultant dans le répertoire racine site-lib d'ocamlfind ; ou sudo make install.

Si vous utilisez un PC, vous devez d'abord installer ocamlfind/findlib et FlexDLL. Assurez-vous que vos variables d'environnement sont correctement définies comme suit :

OCAMLLIB=C:\OCaml\lib
CAML_LD_LIBRARY_PATH=%OCAMLLIB%\stublibs
FLEXLINKFLAGS=-L%MinGW%\lib -L%MinGW%\lib\gcc\mingw32\N.N.N
  • Paquets OPAM :

    • sha
    • str
    • ppx_deriving
    • ppx_deriving_yojson
    • yojson
  • SDK Android (ou sources)

Pour décompresser et recompresser les fichiers apk, nous utilisons apktool, un outil open source de réingénierie APK. Comme il utilise aapt, l'outil de packaging des ressources Android, vous devez installer le SDK Android ou les sources. De plus, nous utilisons zipalign, qui vient également du SDK Android, pour optimiser les applications réécrites.

Vous pouvez définir les chemins vers les outils Android de base en ajoutant les éléments suivants à votre profil :

ANDROID_HOME=$HOME/android-sdk    # votre propre chemin ici !
export ANDROID_HOME

PATH=$PATH:$ANDROID_HOME/tools
PATH=$PATH:$ANDROID_HOME/platform-tools
PATH=$PATH:$ANDROID_HOME/build-tools/19.0.0    # numéro de version installée
export PATH
  • RubyGems et Nokogiri

Les scripts principaux sont écrits en Ruby et nécessitent RubyGems, un gestionnaire de paquets Ruby, et Nokogiri, une bibliothèque XML pour manipuler les fichiers manifestes.

  • (optionnel) graphviz dot

Si vous souhaitez voir des graphes (graphe d'appels, graphe de flot de contrôle, arbre de dominance, etc.), vous devez installer graphviz dot.

Compilation

Pour compiler redexer, faites simplement make ! Vous pouvez voir le binaire redexer à la racine.

$ make (clean)

Avant d'utiliser l'outil, l'installation du fichier de plateforme le plus récent pour apktool incombe à l'utilisateur. Par exemple, vous devez faire

$ java -jar tools/apktool.jar if [fichier de plateforme approprié]

Vous pouvez également générer des documents API au format html.

$ make api

Utilisation

  • aide

Vous pouvez voir toutes les options offertes par l'outil :

$ ruby scripts/cmd.rb -h
$ ruby scripts/cmd.rb --help
  • désanalyse

Comme dexdump dans le SDK Android, redexer vous permet de visualiser l'intérieur du fichier dex donné au format YAML.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd unparse [--to blah.yml]
  • dump method

Cette option affiche les instructions pour une méthode spécifiée.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd dump_method --mtd cls.mtd
  • identité

Cette fonctionnalité permet de tester les modules d'analyse et de désanalyse de redexer. Elle génère probablement un fichier dex identique.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd id [--to blah.dex]
  • info

Vous pouvez également voir des statistiques de base sur le fichier dex, par ex. # instr.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd info
  • classes

Cette option affiche tous les noms de classes définis dans le fichier dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes

Cela peut être utile pour rechercher des bibliothèques tierces spécifiques, par ex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd classes | egrep 'apache'
  • api

Cette option affiche l'utilisation de l'API dans le fichier dex.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd api [--sdk android.]
$ ruby scripts/cmd.rb target.(apk|dex) --cmd api --sdk com.facebook.
  • statistiques des opcodes

N'êtes-vous pas curieux de savoir à quel point certains opcodes sont rarement utilisés dans les bytecodes Dalvik ? Cela vous montrera l'histogramme de tous les opcodes, ou vous pouvez consulter la fréquence d'utilisation d'un opcode précis dans l'application donnée.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd opstat [--op opcode1,opcode2,...]

Par exemple,

$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat
$ ruby scripts/cmd.rb ~/apps/top24/com.whatsapp.apk --cmd opstat --op div-int/lit16,nop
  • analyse de résolution d'intent

Cette option effectue une analyse de résolution d'intent basée sur la propagation, et affiche les transitions entre les classes Activity.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd intent
  • graphe d'appels

Cette option génère un fichier pdf représentant un graphe d'appels du fichier donné. Si vous ne spécifiez pas le nom pdf, cg.pdf sera utilisé.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cg [--to blah.pdf] [--no-pdf]
  • graphe de flot de contrôle

Cette option génère un fichier pdf qui montre un graphe de flot de contrôle de la méthode donnée. Ajoutez un nom de méthode à un nom de classe avec un point : class_name.method_name

$ ruby scripts/cmd.rb target.(apk|dex) --cmd cfg --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • arbre de dominance (post)

Cette option est similaire à la fonctionnalité ci-dessus, sauf qu'elle représente l'arbre de dominance (post).

$ ruby scripts/cmd.rb target.(apk|dex) --cmd (p)dom --mtd cls.mtd [--to blah.pdf] [--no-pdf]
  • analyse de vivacité

Cette option effectue une analyse classique de flux de données arrière.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd live --mtd cls.mtd
  • analyse de propagation de constantes

Cette option effectue une analyse classique de flux de données avant.

$ ruby scripts/cmd.rb target.(apk|dex) --cmd const --mtd cls.mtd
  • analyse des définitions atteignables
Télécharger l’outil