
il decompilatore Android più veloce e potente (strumento nativo che funziona senza Java VM) per file APK, DEX, ODEX, OAT, JAR, AAR e CLASS. che supporta rilevamento di comportamenti dannosi, rilevamento di perdite di privacy, rilevamento di vulnerabilità, risoluzione di percorsi, identificazione di packer, tracciamento delle variabili, deoffuscamento, script Python e Java, estrazione della memoria del dispositivo, decriptazione e crittografia dei dati, ecc.

GDA, un potente decompilatore di bytecode Dalvik implementato in C++, che presenta i vantaggi di un'analisi veloce e di un basso consumo di memoria e disco, nonché una maggiore capacità di decompilare i file apk, dex, odex, oat, jar, class, aar.
GDA è un software completamente nativo e funziona senza alcuna installazione e senza Java VM; funziona bene in qualsiasi sistema Windows recente e in sistemi di macchine virtuali senza configurazione aggiuntiva. Il progetto GDA Decompiler è iniziato nel 2013 e la sua prima versione 1.0 è stata rilasciata nel 2015 sul sito web di GDA.
GDA è anche una potente e veloce piattaforma di analisi reverse. Non supporta solo le operazioni di decompilazione di base, ma anche molte eccellenti funzionalità come Rilevamento di comportamenti maliziosi, Rilevamento di perdite di privacy, Rilevamento di vulnerabilità, Risoluzione dei percorsi, Identificazione di packer, Analisi del tracciamento delle variabili, Deoffuscamento, Script Python e Java, Estrazione della memoria del dispositivo, Decifratura e cifratura dei dati ecc.
Tutte le funzionalità sono le seguenti:
𝕬 Interactive Operation:
1. Cross-references for strings, classes, methods and fields;
2. Searching for strings, classes methods and fields;
3. Comments for java code;
4. Rename methods,fields and classes;
5. Save the analysis results in gda db file.
...
𝕭 Utilities for Assisted Analysis:
1. Extracting DEX from ODEX;
2. Extracting DEX from OAT;
3. XML Decoder (Component filter);
4. Algorithm tool(Support rolling encryption and almost all popular encryption algorithms);
5. Device memory dump(Dump so, odex, dex, oat file);
6. Path solving;
7. Static vulnerability scanner;
...
𝕮 Good Features:
1. Brand new dalvik decompiler in c++ with friendly GUI.
2. Packers Recognition.
3. Multi-DEX supporting.
4. De-obfuscate.
5. Malicious Behavior Scanning by API chains.
6. Static vulnerability scanner based on stack state machine and dynamic rule interpreter.
7. Taint analysis to preview the behavior of variables.
8. Taint analysis to source the variables.
9. APIs view with x-reference
10. Deep URL extraction.
11. Association of permissions with modules.
12. Apk Forensics Analysis.
13. Dual decompiler mode.
14. Smart Rename.
15. Device memory data dump, DEX file dump by memory searching.
16. Support Frida to hook and call the selected method or class.
17. Privacy leaking scanning.
18. Sensitive Infomation extraction.
19. Multi-DEX Merge.
20. Path solving based on low-level intermediate representation(LIR).
21. Junk instruction clearing.
22. Support call-graph view.
23. Smali instruction patch, apk repack and install.
24. Support subclass and parentclass view.
25. Support translation of the strings.
...
𝕲𝕯𝕬 tasti di scelta rapida
Non è richiesta alcuna installazione, basta fare doppio clic sul bin e il gioco è fatto. NOTA: Questo non è un progetto open source,almeno,a breve termine. Puoi utilizzare gli strumenti gratuiti e alcuni script open source pubblicati qui.
Per la protezione del copyright, GDA è protetto da un VMP autorizzato, che potrebbe portare a falsi positivi da parte di alcuni software antivirus. Si prega di ignorarlo o di aggiungere GDA alla lista bianca. GDA non ha alcun comportamento malizioso.
GDA include ADB e gdump (usati per il dump dei dati di memoria del dispositivo), oltre a regole di vulnerabilità, regole di taint delle sorgenti, impronte API ecc. quindi, vedrai alcuni file nella directory %APPDATA%/GDA. Questo comportamento di rilascio di altri file eseguibili può essere identificato come virus da alcuni antivirus.
Solo per Windows
Basta trascinare un file in GDA, il gioco è fatto.
Se i tuoi file sono file .jar/.class/.aar, è necessario che Java supporti lo strumento dx. Assicurati che Java funzioni correttamente.
Quando la dimensione del file jar analizzato è troppo grande, potrebbe richiedere molto tempo per l'analisi, si prega di essere pazienti.
>gda.exe
-sh src_file --> start a Shell
-sv src_file port --> start a Server
-h --> help
------------------------------------------------------------
>gda.exe -h
Usage:gda.exe [option] [apk_file] [-o output_file]
option:
-h help
-x show AndroidManifest.xml
-p app package name
-P permission
-i apk base info
-a attack surface
-k packer
-s all the strings
-S referenced strings
-c cert information
-d decompile all code
------------------------------------------------------------
>gda.exe -sv text.apk 12345
File Loading...
GDA Server listening on port 12345...
>client_gda.py help
------------------------------------------------------------
>gda -sh test.apk
>
>
GDA Shell >help
subcmd [-args]... [-t filter_string]
help --> shell command help
set -o file--> set output file
exit/q --> to exit
axml --> content of androidmainfest.xml
binfo --> apk base info
pname --> apk package name
permission --> permissions of APP
header n --> header of the n-st dex file
attsf --> attacksurface
packer --> packer
cert --> certifacate
appstr --> strings referenced by methods
malscan --> malcious behavior
sensinf --> sensitive infos
interface --> list interface classes
uri --> url,path etc.
native --> list native methods
api --> list api methods
listm cname--> list the methods of class(dot)
sclass cidx--> list subclasses by class index(hex)
pclass cidx--> list parent class by class index(hex)
dasm option--> disasembly a method
option: @type(e.g., dasm method@0045F0)
-n name(signature name,e.g.,"Lcom/base/Binary;->add(Lcom/base/Binary;)V")
dec option--> decompile a method or class,
option: @type (class/method type), e.g., dec method@21f
-c[-m] name(class/method signature name, e.g. , "Lcom/base/Binary;")
-a filepath(decompile the all classes)
find option--> search object by name(match partial/regex)
option: -c[-m][-M][-d][-s][-i][-a] name, e.g., find -C Frame (regex:~"Frame.*")
|-c(match class name) |-C(match class name with package)
|-m(match method name) |-M(match method name with package)
|-d(match field name) |-i(match api method name)
|-s(match string) |-a(match all[classes,methods,field and strings]
xref option --> search cross-reference of object
option(1): @type (method/class/field/string type), e.g. ,xref string@22e
option(2): -c[-m][-M][-d][-s][-i][-a] name(match partial), e.g. ,xref -m send
|-c(xref of class name) |-s(xref of string)
|-m(xref of method name) |-r(xref of resource name)
|-f(xref of field name) |-a(xref of all[classes,methods,field and strings]
Un esempio di skill:
Un esempio di analisi di malware:
skill example for malware analyzing
Decifratura batch delle stringhe delle app
GDA: Cattura la bandiera nel CTF
GDA: Tecnologia di patch statica DEX basata sulla compilazione Smali just-in-time
Supporta solo GDA3.75+, le altre versioni non utilizzano questo file tema. Utilizzo: clicca sul menu File -> Importa configurazione colore, scegli un file tema e riavvia GDA.

| scorciatoia | descrizione |
|---|
| F5 | Passa da java a smali, premendo di nuovo torna a java |
| F | Traccia gli argomenti e il valore di ritorno tramite analisi del flusso di dati |
| X | Riferimento incrociato, localizza i chiamanti (di stringhe, classi, metodi, campi) |
| Esc/◄/Backspace | Torna all'ultima visita |
| ► | Vai alla visita successiva |
| G | Salta a un punto inserendo l'offset |
| N | Rinomina il nome della variabile/metodo/classe |
| S | Cerca tutti gli elementi con la stringa data |
| C | Commenti. Supporta solo il codice Java |
| Doppio clic | Il cursore è posizionato su metodo/stringa/campo/classe e con un doppio clic si accede agli oggetti |
| M | Il cursore è posizionato sulla riga Smali e premendo il tasto 'M' si modifica l'istruzione |
| ▲ SU | Premere il tasto 'su' per accedere al metodo precedente nel controllo ad albero |
| ▼ Giù | Premere il tasto 'giù' per accedere al metodo successivo nel controllo ad albero |
| D | Dump dei dati binari dei metodi, supporta solo la finestra Smali |
| Invio | Le modifiche ai campi di modifica hanno effetto |
| H | Mostra i dati in esadecimale |
| Ctr+H | Apre la finestra della cronologia delle ricerche |
| Ctr+A | Seleziona tutto |
| Ctr+C | Copia |
| Ctr+V | Incolla, solo per campi modificabili |
| Ctr+X | Taglia |
| Ctr+F | Trova la stringa nell'area del codice |
| Ctr+S | Salva le modifiche nel file database di GDA |