
zafrida-ui v0.3.7
Una ventana de herramienta de UI de Frida dentro de PyCharm / IDEs JetBrains.
中文 | English
ZAFrida UI - PyCharm Frida Plugin
Versión actual: 0.3.7
Principales novedades de 0.3.7
- Cada ZAFrida Project puede seleccionar o compartir de forma independiente el entorno Python/Frida; por defecto se usa el intérprete del proyecto PyCharm actual, con soporte para entornos locales como venv, Conda, uv, Poetry, Pipenv, Hatch, etc.
- Se rediseñaron la Session UI y los Project Settings, mostrando por completo la información de versiones del plugin, Python y Frida, y se optimizó el panel de logs adaptable y arrastrable junto con el estado de la sesión.
- Soporte completo para
.js/.ts, Frida 16/17, cambio entre múltiples entornos de proyecto, y los tres flujos de conexión: USB, Remote y Gadget. - Se reforzaron las capacidades de recuperación de dispositivos, espera de sesión y logs incrementales de la API HTTP local, la CLI y las Skills en chino; se eliminó la capa de adaptación MCP duplicada e inestable.
Introducción al proyecto
Herramienta gráfica de Frida diseñada para PyCharm/IntelliJ
ZAFrida UI es un plugin de operación gráfica de Frida integrado en PyCharm y en los IDE de la familia JetBrains. Su objetivo es resolver los problemas de la tediosa operación por línea de comandos de Frida y la gestión caótica de scripts, proporcionando un conjunto completo de interfaces de interacción UI para gestionar dispositivos, procesos, scripts y logs.
El punto culminante principal reside en su sistema de gestión de plantillas "tipo casilla de verificación": el usuario puede insertar dinámicamente fragmentos de código en el script principal o comentarlos marcando/desmarcando casillas, logrando así un ensamblaje de scripts Hook "tipo bloques". Además, el plugin incorpora una gestión completa por proyectos (zafrida-project.xml) que admite el cambio rápido entre múltiples configuraciones de dispositivos y entornos.
ZAFrida no sustituye a Frida, sino que actúa como una potente interfaz UI para frida-tools, conectándose sin fisuras con su entorno Python y Frida existente.
Wiki simplificada: ZAFrida UI Wiki simplificada (BBS) (esta es la Wiki más sencilla) Tutorial detallado de uso: Wiki del tutorial detallado de ZAFrida UI
Demostración de resultados

Inicio rápido
- Instalar el plugin: Busque "ZAFrida" en el mercado de plugins del IDE o instálelo desde disco.
- Configurar el entorno predeterminado: Por defecto se usa el Python Interpreter del proyecto PyCharm actual; en
Settingsglobales ->Tools->ZAFridasolo se conservan los valores predeterminados de nombre/ruta de las herramientas. - Crear un proyecto: Haga clic derecho en la vista de proyecto ->
New Frida Project.- Si ese proyecto requiere una versión diferente de Frida, abra los
Project Settingsde ZAFrida, seleccione el intérprete de Python o el directorio del entorno y haga clic enTest.
- Si ese proyecto requiere una versión diferente de Frida, abra los
- Escribir/seleccionar script: En el panel Run seleccione su
agent.jsoagent.ts. - Depuración de Hooks:
- Conecte el dispositivo (USB, Remote o Gadget).
- Seleccione el proceso objetivo o el nombre del paquete.
- Haga clic en Run.
- Usar plantillas: Cambie a la pestaña
Templates, marque las funciones Hook que necesite (por ejemplo, "SSL Pinning Bypass") y el código se inyectará automáticamente en su script. - Automatización con Skills (opcional): Desactivada por defecto. Vaya a
Settings/Preferences -> ZAFrida -> Skills HTTP API, marqueEnable Skillspara iniciar automáticamente la API local (también puede iniciarla/detenerla manualmente conStart/Stop). Ubicación de la CLI y las plantillas:- Skill y CLI principal:
skills-template/zafrida-http-control/ - Lanzador compatible con rutas antiguas:
skills-cli/zafrida_skill_cli.py
- Skill y CLI principal:
Código QR del grupo de intercambio
Características
-
Gestión de dispositivos y procesos
Integrafrida-ls-devicesyfrida-ps, con soporte para actualizar la lista de dispositivos con un clic, ver procesos en ejecución, apps en ejecución o aplicaciones instaladas. -
Conexión multimodo
Soporte completo de los modos USB / Remote / Gadget, con Host y Port remotos personalizables, sin necesidad de ensamblar manualmente parámetros complejos de línea de comandos. -
Ejecución interactiva de scripts (Run / Attach)
- Soporta las dos acciones de ejecución Run (Spawn por defecto) y Attach, en lugar de un simple "cambio de modo".
- Soporta Force Stop para detener forzosamente la aplicación objetivo.
- Salida de logs de consola integrada, con guardado automático de logs en el directorio del proyecto
zafrida-logs/.
-
Menú contextual del editor JS / TypeScript (importante)
- En el área de edición de archivos Frida
.jso.ts, haga clic derecho y podrá seleccionar directamente:- Run Frida Script: ejecuta el archivo actual como script principal (Spawn por defecto).
- Attach Frida Script: inyecta el archivo actual como script adjunto en el proceso objetivo ya en ejecución.
- Antes de ejecutar, el archivo actual se guarda automáticamente y se cambia automáticamente al ZAFrida Project al que pertenece el script.
- Ideal para PoC rápidos, validación de demos, modo Gadget o inyección inmediata en procesos ya en ejecución.
- Atajos de teclado:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- En el área de edición de archivos Frida
-
Inserción de Snippets desde el menú contextual del editor
- El menú contextual del editor JS / TypeScript ofrece ZAFrida Frida Snippets.
- Inserte con un clic fragmentos de código Frida de uso común, por ejemplo:
- Estructura envolvente
Java.perform - Plantilla de Hook de métodos Java
- Native Hook con
Interceptor.attach
- Estructura envolvente
- La inserción sigue la WriteCommandAction del IDE, por lo que se puede deshacer/rehacer de forma segura.
-
Sistema de plantillas dinámicas (innovación principal)
- Plantillas Hook de uso común para Android / iOS integradas (como SSL Pinning Bypass, Method Hook, Native Hook).
- Control mediante casillas de verificación: marcar inserta el código, desmarcar comenta el código automáticamente, sin necesidad de borrar o modificar manualmente.
- Soporte de plantillas personalizadas y vista previa en tiempo real del código de la plantilla dentro del IDE.
-
Diseño separado de Run Script + Attach Script
- Soporta la coexistencia de un Run Script principal y un Attach Script independiente.
- Ideal para desacoplar los "Hooks de fase de arranque" de la "lógica de inyección en tiempo de ejecución", facilitando la depuración compleja y el mantenimiento a largo plazo.
-
Configuración por proyectos (ZAFrida Project)
- Introduce el concepto de ZAFrida Project, guardando dispositivo, objetivo, script, Attach Script, parámetros de conexión, etc., como un contexto de trabajo completo.
- Soporta en la Project View:
New Frida Projectpara crear un nuevo proyectoSelect Frida Projectpara cambiar rápidamente al proyecto activo actualLoad Frida Projectpara importar un directorio de proyecto existente
- Al cambiar de proyecto, el estado de la UI y la configuración se restauran automáticamente.
-
Resolución inteligente del entorno Python / Frida
- Por defecto resuelve el SDK de Python del proyecto PyCharm actual; cada ZAFrida Project puede sobrescribir de forma independiente el intérprete o el directorio del entorno.
- Soporta entornos locales system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv y Hatch.
- Varios ZAFrida Projects pueden seleccionar la misma ruta para compartir el entorno sin copiar el venv; ideal para mantener por separado entornos Frida 16/17.
- Si el entorno actual del IDE o el entorno explícito del proyecto carece de
frida-tools, se muestra un error directamente, sin usar silenciosamente otra versión del PATH del sistema;Testpuede mostrar la versión real de Frida. - Los intérpretes de Python remotos como SSH, Docker, Docker Compose, WSL, etc., no pueden usarse por ahora para el subproceso local de Frida.
-
Frida 17 / TypeScript
- La selección de archivos, Run/Attach desde el menú contextual y los Snippets admiten
.js/.ts; el REPL de Frida 17 compila automáticamente-l agent.ts. - Las plantillas integradas se han migrado a la API moderna Module/NativePointer de Frida 17, manteniendo a la vez la compatibilidad con los entornos habituales de Frida 16.
- El REPL de frida-tools incluye de forma compatible los bridges estándar de Java/ObjC; al usar
importde módulos npm/terceros, gestione las dependencias mediantefrida-create -t agento un proyecto equivalente.
- La selección de archivos, Run/Attach desde el menú contextual y los Snippets admiten
-
Interfaz local de automatización Skills
- La API HTTP local de Skills (desactivada por defecto) admite descubrimiento de capacidades, proyectos/entornos Python, dispositivos y procesos, Run/Attach, listado de logs históricos y lectura de logs incrementales basada en cursor de bytes.
- La Skill incorpora flujos de recuperación acotados
wait-device/wait-session, y distingue entre lecturas que pueden reintentarse de forma segura y operaciones con efectos secundarios que no pueden reproducirse automáticamente. - Cómo activarla:
Settings/Preferences -> ZAFrida -> Skills HTTP API, marqueEnable Skills. - CLI y plantillas asociadas:
skills-template/zafrida-http-control/(Skill y CLI principal)skills-cli/zafrida_skill_cli.py(lanzador compatible con rutas antiguas)
Escenarios de uso
ZAFrida UI es adecuado para todos los escenarios de ingeniería inversa con Frida, en particular:
- Pruebas de penetración y análisis de ingeniería inversa de apps Android / iOS.
- Procesos de depuración que requieren cambiar con frecuencia entre diferentes scripts Hook.
- Ingenieros acostumbrados a usar IDE (PyCharm/IDEA) para desarrollo mixto de Python, JavaScript y TypeScript.
Documentación técnica
-
Requisitos del entorno:
- IntelliJ IDEA o PyCharm (se recomienda 2024.3+)
- Python3 y
frida-toolsinstalados localmente (pip install frida-tools) - Asegúrese de que
frida,frida-ps,frida-ls-devicesestén en el PATH del sistema o especifique sus rutas en la configuración del plugin.
-
Reporte de problemas: Github Issues
Iniciar el proyecto
- Clone el código fuente:
git clone https://github.com/yilongmd/zafrida-ui.git - Abra el proyecto con IntelliJ IDEA.
- Ejecute la tarea de Gradle
runIdepara iniciar el entorno de depuración.
Capturas del sistema
Interfaz principal y panel de ejecución (Run Panel)
Ofrece selección de dispositivo, selección de script, configuración del modo de ejecución y salida de consola.

Gestión de plantillas dinámicas (Template Panel)
A la izquierda se selecciona la categoría, en el centro se marcan las plantillas y a la derecha se previsualiza el código en tiempo real. Las casillas controlan directamente si el contenido del script está activo o no.

Interfaz de configuración (Settings)
Admite personalizar las rutas de las herramientas Frida, la dirección de conexión remota y la configuración de logs.

Asistente de creación de proyectos
Crea rápidamente una estructura de proyecto Frida estandarizada.

Arquitectura técnica
Entorno de desarrollo
- Lenguaje: Java 21, Java, scripts de compilación con Gradle Kotlin DSL
- Framework: IntelliJ Platform SDK
- Herramienta de compilación: Gradle
- Dependencias:
fridafrida-tools(entorno Python)
Agradecimientos
Agradecimiento especial a las siguientes personas por proporcionar soporte de plantillas de scripts Frida JS para este proyecto:
- 小佳
- Lane
- 迷人
Para más colaboradores e información de agradecimientos, consulte: CONTRIBUTORS.md