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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ASC — Front-end rapide de décompilation d'APK Android qui interroge directement les artefacts DEX compilés, extrayant les classes et les références croisées en quelques millisecondes sans prétraitement. | Kitploit
Outils/GitHubGitHub/mg1937/asc
Sécurité AndroidAnalyse StatiqueAnalyse de CodeAnalyse Dynamique de Code (DAST)Pentesting d'Applications MobilesRétro-ingénierieSécurité MobileUtilitaires et FrameworksAnalyse de Binaires
GitHubmg1937/asc

ASC

Front-end rapide de décompilation d'APK Android qui interroge directement les artefacts DEX compilés, extrayant les classes et les références croisées en quelques millisecondes sans prétraitement.

2.1k28717il y a 3 joursVé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

Droid ASC : L'optimisation du compilateur R8 comme primitive de décompilation

https://blackhat.com/europe/arsenal/schedule/index.html#droid-asc-r8-compiler-optimization-as-a-decompiler-primitive-54834

Lors de la décompilation d'APK Android massifs, la procédure standard consiste à attendre. Nous attendons que les outils consomment des gigaoctets de RAM, gonflent entièrement les artefacts et passent des dizaines de minutes à construire de lourds index globaux et des références croisées... Tout cela uniquement pour garantir des recherches de code rapides par la suite, mais voici la contradiction. Un artefact compilé est déjà hautement structuré, les décompilateurs modernes ne l'exploitent jamais, ils gaspillent d'énormes quantités de temps et de mémoire à reconstruire une base de données gonflée de relations de code sur des données déjà structurées. Cette approche d'ingénierie défie le bon sens. Quand je peux extraire directement n'importe quelle relation de code depuis l'APK en millisecondes, ce prétraitement a-t-il encore une quelconque valeur ?

Au lieu de forcer les décompilateurs à un lourd prétraitement, nous choisissons d'interroger directement l'artefact compilé comme une base de données. Nous avons construit un moteur sans état et sans surcoût qui extrait et recherche le code à la demande en millisecondes. Dans ce briefing, nous explorerons l'ingénierie sous-jacente nécessaire pour contourner les goulots d'étranglement traditionnels. Nous démontrerons comment abandonner le gonflement complet en sondant directement dans le flux binaire Deflate, en construisant des tables de correspondance Huffman denses pour extraire les métadonnées essentielles sans toucher aux blocs de données non pertinents. De plus, nous expliquerons les détails d'optimisation du compilateur R8, en particulier comment la relocalisation déterministe des constantes et la déduplication des instructions laissent derrière elles des dispositions physiques hautement concentrées ; nous exploitons ce comportement du compilateur pour exécuter des recherches de code croisées entre DEX à une vitesse fulgurante. Pour mapper ces décalages de bytecode bruts vers des méthodes, nous avons conçu une primitive de localisation d'instructions en O(1), atteignant une résolution de méthode en temps constant sans construire de lourdes tables de correspondance. Enfin, en atteignant une cible, Droid ASC extrait uniquement les bytecodes spécifiques et ses dépendances, reconstruisant dynamiquement un DEX minimal et cohérent entièrement en mémoire pour une décompilation instantanée.

Nous démontrerons cette architecture en direct contre un APK commercial de 352 Mo. Droid ASC exécute des recherches de références croisées globales en 1,79 seconde et décompile les classes cibles en 177 millisecondes en utilisant seulement 141 Mo de RAM. En traitant l'artefact comme une base de données en lecture seule et en opérant sans aucun prétraitement, nous ramenons le décompilateur à son essence première. Ce n'est plus un outil d'indexation gonflé, mais un moteur de décompilation à la demande, ultra-rapide, qui redéfinit fondamentalement notre façon d'analyser le code compilé.

Benchmark

Benchmark

https://github.com/user-attachments/assets/4c4a6813-8561-490c-a573-ef113da861b6

Installation

# from PyPI
pip install droidasc

# or from source
pip install .

Après l'installation, la commande CLI droidasc est disponible globalement :

usage: droidasc [-h] {getclass,listclass,getmanifest,findrefs} ...

ASC tooling entry.

positional arguments:
  {getclass,listclass,getmanifest,findrefs}
    getclass            Locate the target class in APK, extract one DEX in memory, then decompile.
    listclass           List classes defined across all DEX entries in APK.
    getmanifest         Decode AndroidManifest.xml from APK and print it as XML.
    findrefs            Find code references for string/type/method/field across all DEX entries in APK.

options:
  -h, --help            show this help message and exit

examples:
  droidasc app.apk --gui
  droidasc getclass app.apk Lcom/poc/Main; -o Main.java
  droidasc getclass app.apk com.poc.Main --threads 16
  droidasc listclass app.apk -o classes.txt
  droidasc listclass app.apk --prefix com.poc
  droidasc getmanifest app.apk -o AndroidManifest.xml
  droidasc findrefs app.apk string token -o string_refs.txt
  droidasc findrefs app.apk type com.poc.Main
  droidasc findrefs app.apk method onCreate --class com.poc.Main
  droidasc findrefs app.apk method notify --class MainActivity --fuzzy-class -o method_refs.txt
  droidasc findrefs app.apk field apiKey -o field_refs.txt

listclass affiche les descripteurs de classes Dalvik dans l'ordre de définition APK/DEX, un par ligne. Avec -o, la sortie est écrite dans le fichier sélectionné au lieu de stdout. --prefix com.poc filtre par Lcom/poc ; un préfixe déjà normalisé tel que Lcom/poc est conservé inchangé.

Vous pouvez également utiliser python main.py comme avant — il délègue au même point d'entrée.

Sponsors

SponsorMontant
HTTChina5000¥
c01ns11.9¥
gguowang AND cococount2¥
Ylarod50.11¥

Merci à tous les sponsors pour votre soutien !

ASC est construit avec l'espoir qu'il puisse véritablement aider chacun à améliorer son flux de travail d'ingénierie inverse — de l'accélération des parties fastidieuses au fait de rendre l'impossible routinier.

Remerciements

Merci au projet Androguard pour avoir fourni la base d'ingénierie inverse Android et d'analyse DEX utilisée par Droid ASC.

Télécharger l’outil