
zafrida-ui v0.3.7
Окно инструмента Frida UI внутри PyCharm / JetBrains IDE.
中文 | English
ZAFrida UI - PyCharm Frida Plugin
Текущая версия: 0.3.7
Основные обновления в 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.
- Если для этого проекта требуется другая версия Frida, откройте ZAFrida
- Написание/выбор скрипта: в панели Run выберите ваш
agent.jsилиagent.ts. - Отладка 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
- Skill и основной CLI:
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
- Windows / Linux:
- В области редактирования файлов Frida
-
Вставка 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или эквивалентный проект.
- Выбор файлов, Run/Attach через контекстное меню и Snippets поддерживают
-
Локальный интерфейс автоматизации 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
Запуск проекта
- Клонируйте исходный код:
git clone https://github.com/yilongmd/zafrida-ui.git - Откройте проект в IntelliJ IDEA.
- Запустите задачу Gradle
runIdeдля запуска среды отладки.
Скриншоты
Главный интерфейс и панель запуска (Run Panel)
Предоставляет выбор устройства, выбор скрипта, настройку режима запуска и вывод консоли.

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

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

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

Техническая архитектура
Среда разработки
- Язык: Java 21, Java, скрипты сборки на Gradle Kotlin DSL
- Фреймворк: IntelliJ Platform SDK
- Инструмент сборки: Gradle
- Зависимости:
fridafrida-tools(окружение Python)
Благодарности
Особая благодарность следующим разработчикам за предоставленные шаблоны Frida JS скриптов для этого проекта:
- 小佳
- Lane
- 迷人
Дополнительную информацию о вкладчиках и благодарностях см.: CONTRIBUTORS.md