JADX Magic Strings Plugin
Um plugin JADX que extrai informações de constantes de string.
Funcionalidades
O plugin extrai e analisa constantes de string de código decompilado para encontrar:
- Referências a Arquivos Fonte: Detecta referências a arquivos fonte Java/Kotlin (
.java, .kt, .kts, .scala, .groovy) em constantes de string
- Candidatos a Nomes de Método: Identifica potenciais nomes de método a partir de strings usando padrões regex
- Análise de Strings: Coleta todas as constantes de string com seus métodos e classes associados
Instalação
Opção 1: Instalar a partir do GitHub (Recomendado)
Se este plugin estiver publicado no GitHub, você pode instalá-lo diretamente:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
Opção 2: Compilar e Instalar a partir do Código Fonte
-
Clone o repositório:
git clone https://github.com/0rshemesh/jadx-magic-strings.git
cd jadx-magic-strings
-
Compile o plugin:
-
Instale o plugin:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar
Ou copie manualmente o JAR para o diretório de plugins do JADX:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/
- Windows:
%APPDATA%\jadx\plugins\dropins\
Compilando o Plugin
O plugin pode ser compilado independentemente:
O JAR do plugin será criado em:
build/libs/jadx-magic-strings-1.0.1.jar
Requisitos:
- Java 11 ou superior
- Gradle (ou use o Gradle wrapper incluído:
./gradlew)
Uso
No JADX GUI
-
Instale o plugin (veja a seção Instalação acima)
-
Execute o JADX GUI:
-
Abra seu arquivo APK/DEX no JADX GUI
-
Aguarde a decompilação ser concluída (o plugin é executado automaticamente após a decompilação)
-
Acesse o plugin:
- Vá ao menu Plugins na barra de menus
- Clique em "Magic Strings: Show Results"
- Uma janela de diálogo será aberta com múltiplas abas:
- Source Files: Visualização em árvore dos caminhos de arquivos fonte detectados e suas referências
- Top Candidates + Source Files: Visão combinada dos candidatos a método com maior pontuação, agrupados por arquivo fonte
- Method Candidates (Filtered): Tabela mostrando candidatos a nomes de método filtrados
- All Strings: Tabela mostrando todas as constantes de string extraídas

No JADX CLI
O plugin é executado automaticamente durante a decompilação, mas não há interface CLI para visualizar os resultados. Use o GUI para ver as informações extraídas.
Como Funciona
- Após a decompilação, o plugin examina todos os métodos de todas as classes
- Extrai constantes de string dos nós de instrução (instruções CONST_STR)
- Analisa strings usando padrões regex:
- Arquivos fonte: Corresponde a caminhos de arquivo terminados em
.java, .kt, etc.
- Nomes de método: Corresponde a padrões camelCase que parecem nomes de método
- Armazena resultados em uma estrutura de dados acessível via GUI
Exemplos de Casos de Uso
- Engenharia Reversa: Encontrar nomes originais de arquivos fonte que podem revelar a estrutura do projeto
- Desofuscação: Identificar nomes de método a partir de strings de depuração ou mensagens de erro
- Análise de Código: Entender relações entre strings e métodos
- Análise de Malware: Extrair strings interessantes que podem indicar funcionalidade
Limitações
- O plugin só funciona após a decompilação estar concluída
- A extração de strings depende de o código estar decompilado (código ofuscado pode não ter strings acessíveis)
- A detecção de nomes de método usa heurísticas e pode produzir falsos positivos
- A detecção de arquivos fonte depende de strings contendo caminhos de arquivo (nem sempre presentes)
Solução de Problemas
Plugin não aparece no menu:
- Certifique-se de que o plugin está instalado corretamente
- Verifique se o JAR do plugin está no diretório de plugins
- Confirme se o arquivo de serviço existe:
META-INF/services/jadx.api.plugins.JadxPlugin
- Garanta que você está usando uma versão compatível do JADX (1.5.2+)
Nenhum resultado exibido:
- O código pode não conter strings relevantes
- Tente decompilar um arquivo APK/DEX diferente
- Código ofuscado pode não ter strings extraíveis
Erros de compilação:
- Certifique-se de estar usando Java 11 ou superior
- Execute
./gradlew clean build para recompilar tudo
- Verifique se a versão do JADX em
build.gradle.kts corresponde a uma versão disponível no Maven Central
Autor
Criado e mantido por 0rshemesh.
Licença
Este plugin está licenciado sob a Apache License 2.0. Consulte o arquivo LICENSE para obter detalhes.