中文 | 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
Settings globales -> Tools -> ZAFrida solo 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 Settings de ZAFrida, seleccione el intérprete de Python o el directorio del entorno y haga clic en Test.
- Escribir/seleccionar script: En el panel Run seleccione su
agent.js o agent.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, marque Enable Skills para iniciar automáticamente la API local (también puede iniciarla/detenerla manualmente con Start/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
Código QR del grupo de intercambio
Características
-
Gestión de dispositivos y procesos
Integra frida-ls-devices y frida-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
.js o .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
-
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
- 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.