Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
zafrida-ui — Una ventana de herramienta de UI de Frida dentro de PyCharm / IDEs JetBrains. | Kitploit
Herramientas/GitHubGitHub/yilongmd/zafrida-ui
Seguridad AndroidAnálisis Dinámico (Sandboxing)Seguridad iOSIngeniería InversaScripting y AutomatizaciónDepuradoresPruebas de PenetraciónSeguridad MóvilUtilidades y Frameworks
GitHubyilongmd/zafrida-ui

zafrida-ui

Una ventana de herramienta de UI de Frida dentro de PyCharm / IDEs JetBrains.

831139hace 9 díasRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
中文 | [English](https://github.com/yilongmd/zafrida-ui/blob/main/README.en-US.md)

![ZAFrida UI](https://raw.githubusercontent.com/yilongmd/zafrida-ui/HEAD/doc/logo.svg "ZAFrida UI Logo")
ZAFrida UI - Complemento de Frida para PyCharm
===============

Versión actual: 0.3.8


[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
[![](https://img.shields.io/badge/Author-ZAFrida-orange.svg)](https://github.com/yilongmd/zafrida-ui)
[![](https://img.shields.io/badge/Platform-IntelliJ-brightgreen.svg)](https://plugins.jetbrains.com/)
[![GitHub stars](https://img.shields.io/github/stars/yilongmd/zafrida-ui.svg?style=social&label=Stars)](https://github.com/yilongmd/zafrida-ui)

## Actualizaciones principales de 0.3.8

- El panel Session divide «Dispositivo» y «Modo de conexión» en dos filas de selección independientes: la fila Device solo lista dispositivos reales, la fila Mode selecciona USB / Remote / Gadget y el endpoint. El reenvío de puertos adb, Force Stop y Open App del bucle Remote/Gadget siempre actúan sobre el teléfono actualmente seleccionado, sin reutilizar por error dispositivos anteriores.
- Al abrir y actualizar dispositivos por primera vez, se inicia automáticamente el servidor adb que no esté en ejecución, sin necesidad de ejecutar manualmente `adb devices`.
- Cuando un dispositivo guardado no está en línea, se muestra el marcador «No conectado» y se bloquean las operaciones relacionadas; si solo hay un dispositivo USB conectado, se cambia automáticamente a él y se notifica en la Console.
- Debajo de la fila Mode se muestra la ruta adb/frida realmente ejecutada; en modo Gadget el nombre del paquete Target es de solo lectura pero se puede seleccionar y copiar.
- El `/state` de la HTTP API añade el resultado de resolución `connection`; `device-select --host` sigue disponible pero está obsoleto, para endpoints use `mode-set --host/--port`.

## Actualizaciones principales de 0.3.7

- Cada ZAFrida Project puede seleccionar o compartir de forma independiente el entorno Python/Frida; por defecto usa el intérprete del proyecto PyCharm actual, y admite entornos locales como venv, Conda, uv, Poetry, Pipenv, Hatch, etc.
- Rediseño de la Session UI y Project Settings, mostrando completa la información de versión del plugin, Python y Frida, y optimizando el panel de logs adaptativo y arrastrable y el estado de sesión.
- Soporte completo para `.js` / `.ts`, Frida 16/17, cambio de entorno entre múltiples proyectos, y los tres flujos de conexión USB, Remote y Gadget.
- Refuerzo de la HTTP API local, CLI y Skill en chino para la recuperación de dispositivos, espera de sesión y logs incrementales; se elimina la capa de adaptación MCP duplicada e inestable.


Introducción al proyecto
-----------------------------------

<h3 align="center">Herramienta gráfica de Frida diseñada para PyCharm/IntelliJ</h3>

ZAFrida UI es un complemento de operación gráfica de Frida integrado en PyCharm y la serie de IDE de JetBrains. Está diseñado para resolver los problemas de la engorrosa operación por línea de comandos de Frida y la gestión desordenada de scripts, ofreciendo un conjunto completo de **interfaz de interacción UI** para gestionar dispositivos, procesos, scripts y logs.

El punto clave es su **sistema de gestión de plantillas «estilo casilla de verificación»**: el usuario puede, marcando/desmarcando casillas, insertar dinámicamente fragmentos de código en el script principal o comentarlos, logrando así un ensamblaje de scripts Hook «tipo bloques de construcción». Además, el complemento incorpora una completa **gestión por proyectos** (`zafrida-project.xml`), que permite cambiar rápidamente entre configuraciones de múltiples dispositivos y entornos.

ZAFrida no reemplaza a Frida, sino que actúa como una potente interfaz UI para `frida-tools`, conectándose sin problemas con su entorno Python y Frida existente.

**Wiki simplificada**: [Wiki simplificada de ZAFrida UI (BBS)](https://github.com/yilongmd/zafrida-ui/blob/main/zafrida_ui_wiki_bbs_zh.md) (esta es una Wiki más sencilla)
**Tutorial de uso detallado**: [Wiki del tutorial de uso detallado de ZAFrida UI](https://github.com/yilongmd/zafrida-ui/blob/main/ZAFridaUI_Wiki_zh.md)

## Demostración
![Home](https://assets.kitploit.com/production/public/readmes/11475/b5687a2c837892013964eef5ec3f7c50e0623dfc1cdc44fb233b0cf00d5af2fd.png "Home")

Inicio rápido
-----------------------------------

1.  **Instalar el complemento**: busque "ZAFrida" en el marketplace de complementos del IDE o instálelo desde disco.
2.  **Configurar el entorno predeterminado**: por defecto se usa el Python Interpreter del proyecto PyCharm actual; en `Settings` global -> `Tools` -> `ZAFrida` solo se conservan los valores predeterminados de nombre/ruta de herramientas.
3.  **Crear un proyecto**: clic derecho en la vista de proyecto -> `New Frida Project`.
    * Si el proyecto necesita una versión diferente de Frida, abra ZAFrida `Project Settings`, seleccione el intérprete de Python o el directorio de entorno y haga clic en `Test`.
4.  **Escribir/seleccionar el script**: en el panel Run seleccione su `agent.js` o `agent.ts`.
5.  **Depuración de Hook**:
* Conectar el dispositivo (USB o Remote o Gadget).
* Seleccionar el proceso o nombre de paquete objetivo.
* Hacer clic en **Run**.
6.  **Usar plantillas**: cambie a la pestaña `Templates`, marque las funciones Hook que necesite (como "SSL Pinning Bypass") y el código se inyectará automáticamente en su script.
7.  **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 `Start/Stop` manualmente); ubicaciones del CLI y las plantillas:
    * Skill y CLI principal: `skills-template/zafrida-http-control/`
    * Lanzador compatible con la ruta antigua: `skills-cli/zafrida_skill_cli.py`

Código QR del grupo de intercambio
-----------------------------------
<img src="https://assets.kitploit.com/production/public/readmes/11475/af2e178a9eee68ad3cbdf0c5b002b39f4c18f0128b73575324967291f19eeddc.jpg" alt="ZAFrida与逆向交流群二维码" width="260" />

Características
-----------------------------------

* **Gestión de dispositivos y procesos**  
  Integra `frida-ls-devices` y `frida-ps`, permite actualizar la lista de dispositivos con un clic y 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 componer manualmente parámetros de línea de comandos complejos.

* **Ejecución interactiva de scripts (Run / Attach)**
  * Admite las dos acciones de ejecución **Run (Spawn por defecto)** y **Attach**, en lugar de un simple «cambio de modo».
  * Admite **Force Stop** para detener forzosamente la aplicación objetivo.
  * Salida de log integrada en la consola, con guardado automático de logs en el directorio del proyecto `zafrida-logs/`.

* **Menú contextual del editor JS / TypeScript (importante)**
  * Con clic derecho en el área de edición de archivos Frida `.js` o `.ts`, puede 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, guarda automáticamente el archivo actual y cambia automáticamente al ZAFrida Project al que pertenece el script.
  * Adecuado para PoC rápidos, validación de Demo, modo Gadget o inyección inmediata en procesos ya en ejecución.
  * **Atajos**:
    * Windows / Linux: `Ctrl + Alt + S`
    * macOS: `⌘ + ⌥ + S`

* **Inserción de Snippets desde el menú contextual del editor**
  * En el menú contextual del editor JS / TypeScript se ofrece **ZAFrida Frida Snippets**.
  * Inserción con un clic de fragmentos de código Frida habituales, por ejemplo:
    * Estructura envolvente `Java.perform`
    * Plantilla de Hook de métodos Java
    * Native Hook con `Interceptor.attach`
  * El proceso de inserción sigue WriteCommandAction del IDE, permitiendo deshacer/rehacer de forma segura.

* **Sistema de plantillas dinámicas (innovación central)**
  * Plantillas Hook integradas habituales de Android / iOS (como SSL Pinning Bypass, Method Hook, Native Hook).
  * **Control por casilla de verificación**: al marcar se inserta el código, al desmarcar se comenta automáticamente el código, sin necesidad de borrar o modificar manualmente.
  * Admite plantillas personalizadas y previsualización en tiempo real del código de la plantilla dentro del IDE.

* **Diseño separado de Run Script + Attach Script**
  * Admite la coexistencia del **Run Script** principal y un **Attach Script** independiente.
  * Adecuado para desacoplar el «Hook 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.
  * Admite en el Project View:
    * `New Frida Project` para crear un nuevo proyecto
    * `Select Frida Project` para cambiar rápidamente el proyecto activo
    * `Load Frida Project` para importar un directorio de proyecto existente
  * Tras 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 Python SDK del proyecto PyCharm actual; cada ZAFrida Project puede sobrescribir individualmente el intérprete o el directorio de entorno.
  * Admite entornos locales system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
  * Varios ZAFrida Project pueden elegir la misma ruta para compartir entorno, sin duplicar venv; adecuado 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 produce un error directo, sin usar silenciosamente otra versión del PATH del sistema; `Test` puede mostrar la versión real de Frida.
  * Los Python Interpreter remotos como SSH, Docker, Docker Compose, WSL aún no pueden usarse para el subproceso local de Frida.

* **Frida 17 / TypeScript**
  * La selección de archivos, el clic derecho Run/Attach 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 entornos habituales de Frida 16.
  * El REPL de frida-tools incluye por compatibilidad los bridges estándar de Java/ObjC; al usar `import` de módulos npm/de terceros, gestione las dependencias mediante `frida-create -t agent` o un proyecto equivalente.

* **Interfaz de automatización local Skills**
  * La HTTP API local de Skills (desactivada por defecto) admite descubrimiento de capacidades, entorno de proyecto/Python, dispositivos y procesos, Run/Attach, lista de logs históricos y lectura incremental de logs basada en cursor de bytes.
  * El Skill incorpora flujos de recuperación acotados `wait-device` / `wait-session`, y distingue lecturas seguras de reintentar de operaciones con efectos secundarios no reproducibles automáticamente.
  * Forma de activación: `Settings/Preferences -> ZAFrida -> Skills HTTP API`, marque `Enable Skills`.
  * CLI y plantillas asociadas:
    * `skills-template/zafrida-http-control/` (Skill principal y CLI)
    * `skills-cli/zafrida_skill_cli.py` (lanzador compatible con la ruta antigua)

Casos de uso
-----------------------------------
ZAFrida UI es adecuado para todos los escenarios de ingeniería inversa con Frida, especialmente:
* Pruebas de penetración y análisis inverso de Apps Android / iOS.
* Procesos de depuración que requieren cambiar con frecuencia entre distintos scripts Hook.
* Ingenieros acostumbrados a usar el IDE (PyCharm/IDEA) para desarrollo mixto de Python, JavaScript y TypeScript.

Documentación técnica
-----------------------------------

- **Requisitos de entorno**:
  - IntelliJ IDEA o PyCharm (se recomienda 2024.3+)
  - Python3 y `frida-tools` instalados localmente (`pip install frida-tools`)
  - Asegúrese de que `frida`, `frida-ps`, `frida-ls-devices` estén en el PATH del sistema o especifique la ruta en la configuración del complemento.

- **Comentarios de problemas**: [Github Issues](https://github.com/yilongmd/zafrida-ui/issues)

Iniciar el proyecto
-----------------------------------

1.  Clonar el código fuente: `git clone https://github.com/yilongmd/zafrida-ui.git`
2.  Abrir el proyecto con IntelliJ IDEA.
3.  Ejecutar la tarea Gradle `runIde` para iniciar el entorno de depuración.

Efectos 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.

![Run Panel](https://assets.kitploit.com/production/public/readmes/11475/01ec2353341ebe2f41b51108b72cc0ba66b520589b2e58653899c40fff6aee8d.png "Run Panel Screenshot")
##### Gestión de plantillas dinámicas (Template Panel)
> A la izquierda se elige la categoría, en el centro se marcan las plantillas, a la derecha se previsualiza el código en tiempo real. La casilla de verificación controla directamente si el contenido del script está activo o no.

![Template Panel](https://assets.kitploit.com/production/public/readmes/11475/c23d54b54e8d2cdceb97d4680b9f2735c6afd5722d0bd76bd30b06706e833205.png "Template Panel Screenshot")
##### Interfaz de configuración (Settings)
> Admite rutas personalizadas de herramientas Frida, direcciones de conexión remota y configuración de logs.

![Settings](https://assets.kitploit.com/production/public/readmes/11475/b1651ec2b67aa8d74f45d476445329570c884c2d011af4768401aa12da2ff202.png "Settings Screenshot")
##### Asistente de creación de proyectos
> Crea rápidamente una estructura de proyecto Frida estandarizada.

![New Project](https://assets.kitploit.com/production/public/readmes/11475/b05a9238f0c3c18dbee9116dddc179e1607bcb723589b0ec980ae4f884e3742b.png "New Project Dialog")

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: `frida` `frida-tools` (Python environment)


Agradecimientos
-----------------------------------
Agradecimiento especial a los siguientes expertos por su apoyo con plantillas de scripts Frida JS para este proyecto:

* **小佳**
* **Lane**
* **迷人**

Para más colaboradores e información de agradecimientos, consulte: [CONTRIBUTORS.md](https://github.com/yilongmd/zafrida-ui/blob/main/CONTRIBUTORS.md)
Descargar herramienta