中文 | English
ZAFrida UI - PyCharm Frida Plugin
Текущая версия: 0.3.8

Основные обновления 0.3.8
- В панели Session «устройство» и «режим подключения» разделены на две независимые строки выбора: строка Device содержит только реальные устройства, строка Mode выбирает USB / Remote / Gadget и конечные точки. Проброс adb-портов для Remote/Gadget loopback, Force Stop, Open App всегда применяются к текущему выбранному телефону и больше не используют по ошибке предыдущее устройство.
- При первом открытии и обновлении устройств автоматически запускается неработающий adb server, больше не нужно вручную выполнять
adb devices.
- Если сохранённое устройство не в сети, отображается заглушка «не подключено» и блокируются связанные операции; при подключении только одного USB-устройства оно автоматически выбирается с уведомлением в Console.
- Под строкой Mode отображается фактически используемый маршрут adb/frida; в режиме Gadget имя пакета Target доступно только для чтения, но его можно выделить и скопировать.
- В HTTP API
/state добавлен результат разбора connection; device-select --host по-прежнему доступен, но устарел, для конечных точек используйте mode-set --host/--port.
Основные обновления 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
Демонстрация

Быстрый старт
- Установка плагина: найдите "ZAFrida" в магазине плагинов IDE или установите с диска.
- Настройка окружения по умолчанию: по умолчанию используется Python Interpreter текущего проекта PyCharm; глобальные
Settings -> Tools -> ZAFrida сохраняют только значения по умолчанию для имён/путей инструментов.
- Создание проекта: правый клик в представлении проекта ->
New Frida Project.
- Если этому проекту нужна другая версия Frida, откройте ZAFrida
Project Settings, выберите интерпретатор Python или каталог окружения и нажмите Test.
- Написание/выбор скрипта: выберите ваш
agent.js или agent.ts в панели Run.
- Отладка Hook:
- Подключите устройство (USB, Remote или Gadget).
- Выберите целевой процесс или имя пакета.
- Нажмите Run.
- Использование шаблонов: переключитесь на вкладку
Templates и отметьте нужные функции Hook (например, "SSL Pinning Bypass") — код автоматически внедрится в ваш скрипт.
- Автоматизация 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-код группы общения
Возможности
-
Управление устройствами и процессами
Интеграция 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
- Процесс вставки следует IDE WriteCommandAction, безопасно отменяется/повторяется.