JADX Magic Strings Plugin
Плагин JADX, который извлекает информацию из строковых констант.
Возможности
Плагин извлекает и анализирует строковые константы из декомпилированного кода, чтобы найти:
- Ссылки на исходные файлы: Обнаруживает ссылки на исходные файлы Java/Kotlin (
.java, .kt, .kts, .scala, .groovy) в строковых константах
- Кандидаты в имена методов: Определяет потенциальные имена методов из строк с помощью regex-шаблонов
- Анализ строк: Собирает все строковые константы с их связанными методами и классами
Установка
Вариант 1: Установка из GitHub (рекомендуется)
Если этот плагин опубликован на GitHub, вы можете установить его напрямую:
jadx plugins --install "github:0rshemesh:jadx-magic-strings"
Вариант 2: Сборка и установка из исходного кода
-
Клонируйте репозиторий:
git clone https://github.com/0rshemesh/jadx-magic-strings.git
cd jadx-magic-strings
-
Соберите плагин:
-
Установите плагин:
jadx plugins --install-jar build/libs/jadx-magic-strings-1.0.1.jar
Или вручную скопируйте JAR в каталог плагинов JADX:
- Linux/Mac:
~/.local/share/jadx/plugins/dropins/
- Windows:
%APPDATA%\jadx\plugins\dropins\
Сборка плагина
Плагин можно собрать независимо:
JAR-файл плагина будет создан по адресу:
build/libs/jadx-magic-strings-1.0.1.jar
Требования:
- Java 11 или выше
- Gradle (или используйте встроенный Gradle wrapper:
./gradlew)
Использование
В JADX GUI
-
Установите плагин (см. раздел «Установка» выше)
-
Запустите JADX GUI:
-
Откройте ваш APK/DEX файл в JADX GUI
-
Дождитесь завершения декомпиляции (плагин запускается автоматически после декомпиляции)
-
Доступ к плагину:
- Перейдите в меню Plugins в строке меню
- Нажмите "Magic Strings: Show Results"
- Откроется диалоговое окно с несколькими вкладками:
- Source Files: Древовидное представление, показывающее обнаруженные пути к исходным файлам и их ссылки
- Top Candidates + Source Files: Комбинированное представление кандидатов в методы с наивысшими оценками, сгруппированных по исходным файлам
- Method Candidates (Filtered): Таблица, показывающая отфильтрованные кандидаты в имена методов
- All Strings: Таблица, показывающая все извлеченные строковые константы

В JADX CLI
Плагин запускается автоматически во время декомпиляции, но интерфейса командной строки для просмотра результатов нет. Используйте GUI для просмотра извлеченной информации.
Как это работает
- После декомпиляции плагин сканирует все методы во всех классах
- Извлекает строковые константы из узлов инструкций (инструкции CONST_STR)
- Анализирует строки с помощью regex-шаблонов:
- Исходные файлы: сопоставляет пути к файлам, заканчивающиеся на
.java, .kt и т.д.
- Имена методов: сопоставляет шаблоны camelCase, похожие на имена методов
- Сохраняет результаты в структуре данных, доступной через GUI
Примеры использования
- Реверс-инжиниринг: нахождение оригинальных имен исходных файлов, которые могут раскрыть структуру проекта
- Деобфускация: идентификация имен методов по отладочным строкам или сообщениям об ошибках
- Анализ кода: понимание взаимосвязей между строками и методами
- Анализ вредоносного ПО: извлечение интересных строк, которые могут указывать на функциональность
Ограничения
- Плагин работает только после завершения декомпиляции
- Извлечение строк зависит от декомпилируемого кода (некоторый обфусцированный код может не иметь доступных строк)
- Обнаружение имен методов использует эвристики и может давать ложные срабатывания
- Обнаружение исходных файлов зависит от строк, содержащих пути к файлам (не всегда присутствуют)
Устранение неполадок
Плагин не отображается в меню:
- Убедитесь, что плагин установлен правильно
- Проверьте, что JAR-файл плагина находится в каталоге плагинов
- Проверьте наличие файла службы:
META-INF/services/jadx.api.plugins.JadxPlugin
- Убедитесь, что вы используете совместимую версию JADX (1.5.2+)
Результаты не отображаются:
- Код может не содержать соответствующих строк
- Попробуйте декомпилировать другой APK/DEX файл
- Некоторый обфусцированный код может не иметь извлекаемых строк
Ошибки сборки:
- Убедитесь, что вы используете Java 11 или выше
- Запустите
./gradlew clean build, чтобы пересобрать все
- Проверьте, что версия JADX в
build.gradle.kts соответствует доступной версии на Maven Central
Автор
Создано и поддерживается 0rshemesh.
Лицензия
Этот плагин лицензирован под лицензией Apache 2.0. Подробности см. в файле LICENSE.