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

zafrida-ui v0.3.7

Окно инструмента Frida UI внутри PyCharm / JetBrains IDE.

Поделиться

中文 | English

ZAFrida UI ZAFrida UI - PyCharm Frida Plugin

Текущая версия: 0.3.7

License GitHub stars

Основные обновления в 0.3.7

  • Каждый ZAFrida Project может независимо выбирать или использовать общее окружение Python/Frida; по умолчанию используется интерпретатор текущего проекта PyCharm, поддерживаются локальные окружения venv, Conda, uv, Poetry, Pipenv, Hatch и другие.
  • Полностью переработан Session UI и Project Settings: отображается полная информация о версиях плагина, Python и Frida, оптимизирована адаптивная, перетаскиваемая панель логов и состояние сессии.
  • Полная поддержка .js / .ts, Frida 16/17, переключение между несколькими проектами, а также три процесса подключения: USB, Remote и Gadget.
  • Усилены возможности локального HTTP API, CLI и китайского Skill по восстановлению устройств, ожиданию сессий и инкрементальному чтению логов; удалён дублирующийся и нестабильный адаптер MCP.

Описание проекта

Графический инструмент Frida, разработанный специально для PyCharm/IntelliJ

ZAFrida UI — это плагин для графической работы с Frida, интегрированный в PyCharm и IDE семейства JetBrains. Он призван решить проблемы громоздких операций с Frida через командную строку и хаотичного управления скриптами, предоставляя полный набор UI-интерфейсов для управления устройствами, процессами, скриптами и логами.

Ключевая особенность — система управления шаблонами "в виде флажков": пользователь может динамически вставлять фрагменты кода в основной скрипт или закомментировать их, устанавливая или снимая флажки, что позволяет собирать Hook-скрипты "как из кубиков". Кроме того, плагин включает полноценное управление проектами (zafrida-project.xml) с поддержкой быстрого переключения между несколькими устройствами и конфигурациями окружения.

ZAFrida не заменяет Frida, а выступает в роли мощной UI-оболочки для frida-tools, бесшовно интегрируясь с вашим существующим окружением Python и Frida.

Упрощённая Wiki: ZAFrida UI 简易 Wiki (BBS) (это более простая Wiki) Подробное руководство: ZAFrida UI 详细使用教程 Wiki

Демонстрация

Home

Быстрый старт

  1. Установка плагина: найдите "ZAFrida" в маркетплейсе плагинов IDE или установите из файла на диске.
  2. Настройка окружения по умолчанию: по умолчанию используется Python Interpreter текущего проекта PyCharm; в глобальных Settings -> Tools -> ZAFrida остаются только значения по умолчанию для имён/путей инструментов.
  3. Создание проекта: в окне проекта нажмите правой кнопкой мыши -> New Frida Project.
    • Если для этого проекта требуется другая версия Frida, откройте ZAFrida Project Settings, выберите интерпретатор Python или каталог окружения и нажмите Test.
  4. Написание/выбор скрипта: в панели Run выберите ваш agent.js или agent.ts.
  5. Отладка Hook:
  • Подключите устройство (USB, Remote или Gadget).
  • Выберите целевой процесс или имя пакета.
  • Нажмите Run.
  1. Использование шаблонов: переключитесь на вкладку Templates, отметьте нужные функции Hook (например, "SSL Pinning Bypass"), и код будет автоматически внедрён в ваш скрипт.
  2. Автоматизация Skills (опционально): по умолчанию отключена. Перейдите в Settings/Preferences -> ZAFrida -> Skills HTTP API, отметьте Enable Skills для автоматического запуска локального API (также можно запустить вручную через Start/Stop). Расположение CLI и шаблонов:
    • Skill и основной CLI: skills-template/zafrida-http-control/
    • Совместимый лаунчер для старого пути: skills-cli/zafrida_skill_cli.py

QR-код группы общения

ZAFrida与逆向交流群二维码

Возможности

  • Управление устройствами и процессами
    Интеграция frida-ls-devices и frida-ps, поддержка обновления списка устройств в один клик, просмотр запущенных процессов, работающих приложений или установленных приложений.

  • Многомодовое подключение
    Полная поддержка режимов USB / Remote / Gadget, настраиваемые Host и Port для удалённого подключения — без ручного составления сложных аргументов командной строки.

  • Интерактивный запуск скриптов (Run / Attach)

    • Поддержка действий Run (по умолчанию Spawn) и Attach, а не простое "переключение режимов".
    • Поддержка Force Stop для принудительной остановки целевого приложения.
    • Встроенный вывод логов в консоль с автоматическим сохранением в каталог проекта zafrida-logs/.
  • Контекстное меню редактора JS / TypeScript (важно)

    • В области редактирования файлов Frida .js или .ts нажмите правой кнопкой мыши, чтобы выбрать:
      • Run Frida Script: выполнить текущий файл как основной скрипт (по умолчанию Spawn).
      • Attach Frida Script: внедрить текущий файл как дополнительный скрипт в уже запущенный целевой процесс.
    • Перед выполнением текущий файл автоматически сохраняется, и автоматически переключается на ZAFrida Project, к которому относится скрипт.
    • Подходит для быстрого PoC, проверки Demo, режима Gadget или мгновенного внедрения в уже запущенные процессы.
    • Горячие клавиши:
      • Windows / Linux: Ctrl + Alt + S
      • macOS: ⌘ + ⌥ + S
  • Вставка Snippets через контекстное меню редактора

    • В контекстном меню редактора JS / TypeScript доступен пункт ZAFrida Frida Snippets.
    • Вставка часто используемых фрагментов кода Frida в один клик, например:
      • Обёртка Java.perform
      • Шаблон Hook для методов Java
      • Native Hook через Interceptor.attach
    • Вставка выполняется через WriteCommandAction IDE, поддерживается безопасная отмена/повтор.
  • Динамическая система шаблонов (ключевая инновация)

    • Встроенные шаблоны Hook для Android / iOS (например, SSL Pinning Bypass, Method Hook, Native Hook).
    • Управление флажками: установка флажка вставляет код, снятие — автоматически комментирует код, без ручного редактирования.
    • Поддержка пользовательских шаблонов с предпросмотром кода шаблона в реальном времени в IDE.
  • Раздельная конструкция Run Script + Attach Script

    • Поддержка одновременного использования основного Run Script и отдельного Attach Script.
    • Подходит для разделения "Hook на этапе запуска" и "логики внедрения во время выполнения", что упрощает сложную отладку и долгосрочное сопровождение.
  • Конфигурация на основе проектов (ZAFrida Project)

    • Введена концепция ZAFrida Project, сохраняющая устройство, цель, скрипт, Attach Script, параметры подключения и т.д. как единый рабочий контекст.
    • Поддержка в Project View:
      • New Frida Project — создание нового проекта
      • Select Frida Project — быстрое переключение активного проекта
      • Load Frida Project — импорт существующего каталога проекта
    • После переключения проекта состояние UI и конфигурация автоматически восстанавливаются.
  • Умный анализ окружения Python / Frida

    • По умолчанию анализируется Python SDK текущего проекта PyCharm; каждый ZAFrida Project может отдельно переопределять интерпретатор или каталог окружения.
    • Поддержка локальных окружений system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
    • Несколько ZAFrida Project могут использовать один и тот же путь для общего окружения без копирования venv; удобно для раздельного обслуживания окружений Frida 16/17.
    • Если в текущем окружении IDE или явно указанном окружении проекта отсутствует frida-tools, выводится ошибка — не происходит тихого использования другой версии из системного PATH; Test показывает фактическую версию Frida.
    • Удалённые интерпретаторы Python (SSH, Docker, Docker Compose, WSL и т.д.) временно не поддерживаются для локальных дочерних процессов Frida.
  • Frida 17 / TypeScript

    • Выбор файлов, Run/Attach через контекстное меню и Snippets поддерживают .js / .ts; REPL Frida 17 автоматически компилирует -l agent.ts.
    • Встроенные шаблоны перенесены на современный API Module/NativePointer Frida 17, сохраняя работоспособность в распространённых окружениях Frida 16.
    • REPL frida-tools совместимо переносит стандартные Java/ObjC bridges; при использовании import из npm/сторонних модулей следует управлять зависимостями через frida-create -t agent или эквивалентный проект.
  • Локальный интерфейс автоматизации Skills

    • Локальный Skills HTTP API (по умолчанию отключён) поддерживает обнаружение возможностей, проекты/окружения Python, устройства и процессы, Run/Attach, список исторических логов и инкрементальное чтение логов на основе байтового курсора.
    • Skill включает ограниченный процесс восстановления wait-device / wait-session и различает безопасные для повторных попыток операции чтения и побочные операции, которые нельзя автоматически воспроизводить.
    • Включение: Settings/Preferences -> ZAFrida -> Skills HTTP API, отметьте Enable Skills.
    • Сопутствующие CLI и шаблоны:
      • skills-template/zafrida-http-control/ (основной Skill и CLI)
      • skills-cli/zafrida_skill_cli.py (совместимый лаунчер для старого пути)

Сценарии применения

ZAFrida UI подходит для всех сценариев обратной разработки с использованием Frida, особенно:

  • Тестирование на проникновение и обратный анализ Android / iOS приложений.
  • Процессы отладки, требующие частого переключения между различными Hook-скриптами.
  • Инженеры, привыкшие использовать IDE (PyCharm/IDEA) для смешанной разработки на Python, JavaScript и TypeScript.

Техническая документация

  • Требования к окружению:

    • IntelliJ IDEA или PyCharm (рекомендуется 2024.3+)
    • Локально установлены Python3 и frida-tools (pip install frida-tools)
    • Убедитесь, что frida, frida-ps, frida-ls-devices находятся в системном PATH или указаны пути в настройках плагина.
  • Обратная связь по проблемам: Github Issues

Запуск проекта

  1. Клонируйте исходный код: git clone https://github.com/yilongmd/zafrida-ui.git
  2. Откройте проект в IntelliJ IDEA.
  3. Запустите задачу Gradle runIde для запуска среды отладки.

Скриншоты

Главный интерфейс и панель запуска (Run Panel)

Предоставляет выбор устройства, выбор скрипта, настройку режима запуска и вывод консоли.

Run Panel

Управление динамическими шаблонами (Template Panel)

Слева — выбор категории, в центре — отметка шаблонов, справа — предпросмотр кода в реальном времени. Флажки напрямую управляют активностью содержимого скрипта.

Template Panel

Окно настроек (Settings)

Поддержка настройки путей к инструментам Frida, адреса удалённого подключения и конфигурации логов.

Settings

Мастер создания проекта

Быстрое создание стандартизированной структуры проекта Frida.

New Project

Техническая архитектура

Среда разработки

  • Язык: Java 21, Java, скрипты сборки на Gradle Kotlin DSL
  • Фреймворк: IntelliJ Platform SDK
  • Инструмент сборки: Gradle
  • Зависимости: frida frida-tools (окружение Python)

Благодарности

Особая благодарность следующим разработчикам за предоставленные шаблоны Frida JS скриптов для этого проекта:

  • 小佳
  • Lane
  • 迷人

Дополнительную информацию о вкладчиках и благодарностях см.: CONTRIBUTORS.md

Категории