
o decompilador Android mais rápido e poderoso (ferramenta nativa que funciona sem a Java VM) para os arquivos APK, DEX, ODEX, OAT, JAR, AAR e CLASS. que suporta detecção de comportamento malicioso, detecção de vazamento de privacidade, detecção de vulnerabilidades, resolução de caminhos, identificação de empacotadores, rastreamento de variáveis, desofuscação, scripts Python e Java, extração de memória do dispositivo, descriptografia e criptografia de dados, etc.

GDA, um poderoso decompilador de bytecode Dalvik implementado em C++, que tem as vantagens de análise rápida e baixo consumo de memória e disco e uma forte capacidade de descompilar os arquivos apk, dex, odex, oat, jar, class, aar.
GDA é um software completamente nativo e funciona sem qualquer instalação ou Java VM, funciona bem em qualquer sistema Windows novo e sistema de máquina virtual sem configuração adicional. O projeto GDA Decompiler começou em 2013 e sua primeira versão 1.0 foi lançada em 2015 no site do GDA.
GDA é também uma plataforma de análise reversa poderosa e rápida. Ela não suporta apenas a operação básica de descompilação, mas também muitos recursos excelentes como Detecção de comportamento malicioso, Detecção de vazamento de privacidade, Detecção de vulnerabilidade, Resolução de caminho, Identificação de empacotador, Análise de rastreamento de variáveis, Desofuscação, Scripts Python e Java, Extração de memória de dispositivo, Descriptografia e criptografia de dados, etc.
Todos os recursos são os seguintes:
𝕬 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.
...
𝕲𝕯𝕬 shortcut key
Nenhuma instalação necessária, basta clicar duas vezes no bin e você pode aproveitar. NOTA: Este não é um projeto de código aberto, pelo menos a curto prazo. Você pode usar as ferramentas gratuitas e alguns scripts de código aberto publicados aqui.
Para proteção de direitos autorais, o GDA é protegido por um VMP autorizado, o que pode levar a falsos positivos de alguns softwares antivírus. Por favor, ignore ou adicione o GDA à lista de permissões. O GDA não possui nenhum comportamento malicioso.
O GDA vem embutido com ADB e gdump (usados para despejar dados da memória do dispositivo), bem como regras de vulnerabilidade, regras de taint source, impressão digital de API, etc. Portanto, você verá alguns arquivos no diretório %APPDATA%/GDA. Este comportamento de liberar outros arquivos executáveis também pode ser identificado como vírus por alguns antivírus.
Apenas para Windows
Basta arrastar um arquivo para o GDA, está feito.
Se seus arquivos são .jar/.class/.aar, você precisa que o Java suporte a ferramenta dx. Certifique-se de que o Java funciona corretamente.
Quando o tamanho do arquivo jar analisado é muito grande, pode levar muito tempo para analisar, por favor, seja paciente.
>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]
Um exemplo de habilidade:
Um exemplo de análise de malware:
skill example for malware analyzing
Como pesquisar o que você precisa
Vazamento de Privacidade do GDA
Análise Estática de Taint do GDA
Descriptografia em Lote de Strings de APP
Scanner de Vulnerabilidade do GDA
GDA: Capture a Bandeira em CTF
GDA: Tecnologia de Patch Estático DEX Baseada na Compilação Just-in-time do Smali
Apenas suporta GDA3.75+, outras versões não usam este arquivo de tema. Uso: clique no menu File->Import Color Config, escolha um arquivo de tema e reinicie o GDA.

| shortcut | description |
|---|
| F5 | Alterna do java para smali, pressione novamente para voltar ao java |
| F | Rastreia os argumentos e o valor de retorno por análise de fluxo de dados |
| X | Referência cruzada, localizando chamadores (de strings, classes, métodos, campos) |
| Esc/◄/Backspace | Volta para a última visita |
| ► | Avança para a próxima visita |
| G | Salta para algum lugar inserindo o offset |
| N | Renomeia o nome da variável/método/classe |
| S | Pesquisa todos os elementos pela string fornecida |
| C | Comentários. Suporta apenas o código Java |
| DoubleClick | O cursor está posicionado no método/string/campo/classe e clique duas vezes para acessar objetos |
| M | O cursor está posicionado na linha Smali e pressione a tecla 'M' para editar a instrução |
| ▲ UP | Pressione a tecla 'cima' para acessar o método anterior no controle de árvore |
| ▼ Down | Pressione a tecla 'baixo' para acessar o método seguinte no controle de árvore |
| D | Despeja os dados binários dos métodos, apenas suporta a janela Smali |
| Enter | As modificações das caixas de edição têm efeito |
| H | Mostra dados em hexadecimal |
| Ctr+H | Exibe a janela de histórico de pesquisa |
| Ctr+A | Selecionar tudo |
| Ctr+C | Copiar |
| Ctr+V | Colar, apenas para caixas editáveis |
| Ctr+X | Recortar |
| Ctr+F | Encontra a string da área de código |
| Ctr+S | Salva as modificações no arquivo de banco de dados do GDA |