
le décompilateur Android le plus rapide et le plus puissant (outil natif fonctionnant sans machine virtuelle Java) pour les fichiers APK, DEX, ODEX, OAT, JAR, AAR et CLASS. Il prend en charge la détection des comportements malveillants, la détection des fuites de confidentialité, la détection des vulnérabilités, la résolution de chemins, l'identification de packers, le suivi de variables, la désobfuscation, les scripts Python et Java, l'extraction de mémoire de l'appareil, le déchiffrement et le chiffrement des données, etc.

GDA, un puissant décompilateur de bytecode Dalvik implémenté en C++, qui présente les avantages d'une analyse rapide et d'une faible consommation de mémoire et de disque, ainsi qu'une grande capacité à décompiler les fichiers apk, dex, odex, oat, jar, class, aar.
GDA est un logiciel entièrement natif et fonctionne sans aucune installation ni machine virtuelle Java. Il fonctionne parfaitement sur tout nouveau système Windows et système de machine virtuelle sans configuration supplémentaire. Le projet de décompilateur GDA a débuté en 2013 et sa première version 1.0 a été publiée en 2015 sur le site web de GDA.
GDA est également une plateforme d'analyse inversée puissante et rapide. Elle ne prend pas seulement en charge les opérations de base de décompilation, mais aussi de nombreuses excellentes fonctionnalités telles que la détection de comportement malveillant, la détection de fuite de confidentialité, la détection de vulnérabilités, la résolution de chemins, l'identification de packers, l'analyse de suivi de variables, le désobfuscation, les scripts Python et Java, l'extraction de mémoire de l'appareil, le déchiffrement et le chiffrement de données, etc.
Toutes les fonctionnalités sont les suivantes :
𝕬 Opérations interactives :
1. Références croisées pour les chaînes, classes, méthodes et champs ;
2. Recherche de chaînes, classes, méthodes et champs ;
3. Commentaires pour le code Java ;
4. Renommer les méthodes, champs et classes ;
5. Sauvegarder les résultats d'analyse dans un fichier db de GDA.
...
𝕭 Utilitaires d'analyse assistée :
1. Extraction de DEX à partir d'ODEX ;
2. Extraction de DEX à partir d'OAT ;
3. Décodeur XML (filtre de composants) ;
4. Outil algorithmique (prend en charge le chiffrement roulant et presque tous les algorithmes de chiffrement populaires) ;
5. Vidage de mémoire de l'appareil (vider les fichiers so, odex, dex, oat) ;
6. Résolution de chemins ;
7. Scanner de vulnérabilités statique ;
...
𝕮 Bonnes fonctionnalités :
1. Nouveau décompilateur Dalvik en C++ avec une interface graphique conviviale.
2. Reconnaissance des packers.
3. Prise en charge du multi-DEX.
4. Désobfuscation.
5. Analyse de comportement malveillant par chaînes d'API.
6. Scanner de vulnérabilités statique basé sur une machine à états de pile et un interpréteur de règles dynamique.
7. Analyse de taint pour prévisualiser le comportement des variables.
8. Analyse de taint pour tracer l'origine des variables.
9. Vue des API avec référence croisée.
10. Extraction d'URL profonde.
11. Association des permissions avec les modules.
12. Analyse forensique d'APK.
13. Mode double décompilateur.
14. Renommage intelligent.
15. Vidage des données mémoire de l'appareil, vidage de fichier DEX par recherche mémoire.
16. Prise en charge de Frida pour hooker et appeler la méthode ou la classe sélectionnée.
17. Analyse de fuite de confidentialité.
18. Extraction d'informations sensibles.
19. Fusion multi-DEX.
20. Résolution de chemins basée sur une représentation intermédiaire de bas niveau (LIR).
21. Suppression des instructions indésirables.
22. Prise en charge de la vue du graphe d'appels.
23. Patch d'instructions Smali, repackage et installation d'APK.
24. Prise en charge de la vue des sous-classes et classes parentes.
25. Prise en charge de la traduction des chaînes.
...
Raccourcis 𝕲𝕯𝕬
Aucune installation requise, double-cliquez simplement sur le binaire et vous pouvez en profiter. NOTE : Ce n'est pas un projet open source, du moins à court terme. Vous pouvez utiliser les outils gratuits et certains scripts open source publiés ici.
Pour la protection des droits d'auteur, GDA est protégé par un VMP autorisé, ce qui peut entraîner des faux positifs de certains antivirus. Veuillez ignorer ou ajouter GDA à la liste blanche. GDA n'a aucun comportement malveillant.
GDA intègre ADB et gdump (utilisé pour vider les données mémoire de l'appareil), ainsi que des règles de vulnérabilité, des règles de source-taint, des empreintes d'API, etc. Vous verrez donc certains fichiers dans le répertoire %APPDATA%/GDA. Ce comportement de libération d'autres fichiers exécutables peut également être identifié comme un virus par certains antivirus.
Windows uniquement
Glissez simplement un fichier dans GDA, c'est tout.
Si vos fichiers sont des fichiers .jar/.class/.aar, vous avez besoin de Java pour supporter l'outil dx. Assurez-vous que Java fonctionne correctement.
Lorsque la taille du fichier jar analysé est trop grande, l'analyse peut prendre du temps, veuillez patienter.
>gda.exe
-sh src_file --> démarrer un Shell
-sv src_file port --> démarrer un Serveur
-h --> aide
------------------------------------------------------------
>gda.exe -h
Utilisation : gda.exe [option] [apk_file] [-o fichier_sortie]
options :
-h aide
-x afficher AndroidManifest.xml
-p nom du package de l'application
-P permission
-i informations de base de l'APK
-a surface d'attaque
-k packer
-s toutes les chaînes
-S chaînes référencées
-c informations du certificat
-d décompiler tout le code
------------------------------------------------------------
>gda.exe -sv text.apk 12345
Chargement du fichier...
Serveur GDA en écoute sur le port 12345...
>client_gda.py help
------------------------------------------------------------
>gda -sh test.apk
>
>
GDA Shell >help
subcmd [-args]... [-t chaîne_filtre]
help --> aide des commandes du shell
set -o file--> définir le fichier de sortie
exit/q --> quitter
axml --> contenu d'AndroidManifest.xml
binfo --> informations de base de l'APK
pname --> nom du package de l'APK
permission --> permissions de l'application
header n --> en-tête du n-ième fichier dex
attsf --> surface d'attaque
packer --> packer
cert --> certificat
appstr --> chaînes référencées par les méthodes
malscan --> comportement malveillant
sensinf --> informations sensibles
interface --> lister les classes d'interface
uri --> url, chemin, etc.
native --> lister les méthodes natives
api --> lister les méthodes API
listm cname--> lister les méthodes de la classe (point)
sclass cidx--> lister les sous-classes par index de classe (hex)
pclass cidx--> lister la classe parente par index de classe (hex)
dasm option--> désassembler une méthode
option : @type (ex : dasm method@0045F0)
-n nom (nom de signature, ex : "Lcom/base/Binary;->add(Lcom/base/Binary;)V")
dec option--> décompiler une méthode ou une classe,
option : @type (type classe/méthode), ex : dec method@21f
-c[-m] nom (nom de signature de classe/méthode, ex : "Lcom/base/Binary;")
-a chemin_fichier (décompiler toutes les classes)
find option--> rechercher un objet par son nom (correspondance partielle/regex)
option : -c[-m][-M][-d][-s][-i][-a] nom, ex : find -C Frame (regex:~"Frame.*")
|-c(correspondance nom de classe) |-C(correspondance nom de classe avec package)
|-m(correspondance nom de méthode) |-M(correspondance nom de méthode avec package)
|-d(correspondance nom de champ) |-i(correspondance nom de méthode API)
|-s(correspondance chaîne) |-a(correspondance tout [classes, méthodes, champs et chaînes])
xref option --> rechercher les références croisées d'un objet
option(1) : @type (type méthode/classe/champ/chaîne), ex : xref string@22e
option(2) : -c[-m][-M][-d][-s][-i][-a] nom (correspondance partielle), ex : xref -m send
|-c(réf. croisée de nom de classe) |-s(réf. croisée de chaîne)
|-m(réf. croisée de nom de méthode) |-r(réf. croisée de nom de ressource)
|-f(réf. croisée de nom de champ) |-a(réf. croisée de tout [classes, méthodes, champs et chaînes])
Un exemple de compétence :
Un exemple d'analyse de logiciel malveillant :
exemple de compétence pour l'analyse de malware
Comment rechercher ce dont vous avez besoin
Déchiffrement par lots des chaînes d'application
GDA : Capture de drapeau en CTF
GDA : Technologie de patch statique DEX basée sur la compilation just-in-time Smali
Uniquement pris en charge par GDA 3.75+. Les autres versions n'utilisent pas ce fichier de thème. Utilisation : cliquez sur le menu Fichier -> Importer une configuration de couleur, choisissez un fichier de thème et redémarrez GDA.

| Raccourci | Description |
|---|
| F5 | Basculer de Java à Smali, appuyer à nouveau pour revenir à Java |
| F | Tracer les arguments et la valeur de retour par analyse de flux de données |
| X | Référence croisée, localiser les appelants (de chaînes, classes, méthodes, champs) |
| Esc/◄/Backspace | Revenir à la dernière visite |
| ► | Aller à la visite suivante |
| G | Sauter à un emplacement en entrant un décalage |
| N | Renommer le nom de la variable/méthode/classe |
| S | Rechercher tous les éléments par la chaîne donnée |
| C | Commentaires. Prend en charge uniquement le code Java |
| Double-clic | Placer le curseur sur la méthode/chaîne/champ/classe, double-cliquer pour accéder aux objets |
| M | Placer le curseur sur la ligne Smali et appuyer sur la touche 'M' pour éditer l'instruction |
| ▲ Haut | Appuyer sur la touche 'haut' pour accéder à la méthode précédente dans l'arborescence |
| ▼ Bas | Appuyer sur la touche 'bas' pour accéder à la méthode suivante dans l'arborescence |
| D | Vider les données binaires des méthodes, prend en charge uniquement la fenêtre Smali |
| Entrée | La modification des zones de texte prend effet |
| H | Afficher les données en hexadécimal |
| Ctrl+H | Afficher la fenêtre d'historique de recherche |
| Ctrl+A | Tout sélectionner |
| Ctrl+C | Copier |
| Ctrl+V | Coller, uniquement pour les zones modifiables |
| Ctrl+X | Couper |
| Ctrl+F | Rechercher la chaîne dans la zone de code |
| Ctrl+S | Sauvegarder les modifications dans le fichier base de données GDA |