Назад к обновлениям
New releaseSep 10, 2026

jadx-magic-strings v1.0.3-dev

Плагин JADX, который извлекает имена методов, ссылки на классы и пути к исходным файлам из строковых констант, найденных в DEX-файлах и декомпилированном Android-коде.

Поделиться

JADX Magic Strings Plugin

Плагин JADX, который извлекает информацию из строковых констант.

Возможности

Плагин извлекает и анализирует строковые константы из декомпилированного кода, чтобы найти:

  1. Ссылки на исходные файлы: Обнаруживает ссылки на исходные файлы Java/Kotlin (.java, .kt, .kts, .scala, .groovy) в строковых константах
  2. Кандидаты в имена методов: Определяет потенциальные имена методов из строк с помощью regex-шаблонов
  3. Анализ строк: Собирает все строковые константы с их связанными методами и классами

Установка

Вариант 1: Установка из GitHub (рекомендуется)

Если этот плагин опубликован на GitHub, вы можете установить его напрямую:

jadx plugins --install "github:0rshemesh:jadx-magic-strings"

Вариант 2: Сборка и установка из исходного кода

  1. Клонируйте репозиторий:

    git clone https://github.com/0rshemesh/jadx-magic-strings.git
    cd jadx-magic-strings
    
  2. Соберите плагин:

    ./gradlew build
    
  3. Установите плагин:

    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\

Сборка плагина

Плагин можно собрать независимо:

./gradlew build

JAR-файл плагина будет создан по адресу:

build/libs/jadx-magic-strings-1.0.1.jar

Требования:

  • Java 11 или выше
  • Gradle (или используйте встроенный Gradle wrapper: ./gradlew)

Использование

В JADX GUI

  1. Установите плагин (см. раздел «Установка» выше)

  2. Запустите JADX GUI:

    jadx-gui
    
  3. Откройте ваш APK/DEX файл в JADX GUI

  4. Дождитесь завершения декомпиляции (плагин запускается автоматически после декомпиляции)

  5. Доступ к плагину:

    • Перейдите в меню Plugins в строке меню
    • Нажмите "Magic Strings: Show Results"
    • Откроется диалоговое окно с несколькими вкладками:
      • Source Files: Древовидное представление, показывающее обнаруженные пути к исходным файлам и их ссылки
      • Top Candidates + Source Files: Комбинированное представление кандидатов в методы с наивысшими оценками, сгруппированных по исходным файлам
      • Method Candidates (Filtered): Таблица, показывающая отфильтрованные кандидаты в имена методов
      • All Strings: Таблица, показывающая все извлеченные строковые константы

Magic Strings Plugin Example

В JADX CLI

Плагин запускается автоматически во время декомпиляции, но интерфейса командной строки для просмотра результатов нет. Используйте GUI для просмотра извлеченной информации.

Как это работает

  1. После декомпиляции плагин сканирует все методы во всех классах
  2. Извлекает строковые константы из узлов инструкций (инструкции CONST_STR)
  3. Анализирует строки с помощью regex-шаблонов:
    • Исходные файлы: сопоставляет пути к файлам, заканчивающиеся на .java, .kt и т.д.
    • Имена методов: сопоставляет шаблоны camelCase, похожие на имена методов
  4. Сохраняет результаты в структуре данных, доступной через 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.

Категории