Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
zafrida-ui — Una finestra dello strumento UI di Frida all'interno di PyCharm / JetBrains IDEs. | Kitploit
Strumenti/GitHubGitHub/yilongmd/zafrida-ui
Sicurezza AndroidAnalisi Dinamica (Sandboxing)Sicurezza iOSReverse EngineeringScripting e AutomazioneDebuggerPenetration TestingSicurezza MobileUtilità e Framework
GitHubyilongmd/zafrida-ui

zafrida-ui

Una finestra dello strumento UI di Frida all'interno di PyCharm / JetBrains IDEs.

8311399 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
中文 | [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 - Plugin Frida per PyCharm
===============

Versione attuale: 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)

## Principali aggiornamenti 0.3.8

- Il pannello Session separa "Dispositivo" e "Modalità di connessione" in due righe di selezione indipendenti: la riga Device elenca solo i dispositivi reali, la riga Mode seleziona USB / Remote / Gadget e l'endpoint. Il port forwarding adb per il loopback Remote/Gadget, Force Stop e Open App agiscono sempre sul telefono attualmente selezionato, senza più utilizzare erroneamente dispositivi storici.
- Alla prima apertura e all'aggiornamento dei dispositivi viene avviato automaticamente il server adb se non in esecuzione, senza dover più eseguire manualmente `adb devices`.
- Quando un dispositivo salvato non è online viene mostrato il segnaposto "Non connesso" e le operazioni correlate vengono bloccate; se è connesso un solo dispositivo USB viene automaticamente utilizzato quello con un avviso nella Console.
- Sotto la riga Mode viene mostrato il routing adb/frida effettivamente eseguito; in modalità Gadget il nome del pacchetto Target è di sola lettura ma selezionabile e copiabile.
- L'API HTTP `/state` include il nuovo risultato di parsing `connection`; `device-select --host` è ancora utilizzabile ma deprecato, per gli endpoint usare `mode-set --host/--port`.

## Principali aggiornamenti 0.3.7

- Ogni ZAFrida Project può selezionare o condividere in modo indipendente l'ambiente Python/Frida, utilizzando per impostazione predefinita l'interprete del progetto PyCharm corrente, con supporto per ambienti locali venv, Conda, uv, Poetry, Pipenv, Hatch e altri.
- Ridisegnata la UI di Session e le Project Settings, con visualizzazione completa delle informazioni su versione del plugin, Python e Frida, e ottimizzazione del pannello log adattivo e trascinabile e dello stato della sessione.
- Supporto completo per `.js` / `.ts`, Frida 16/17, cambio di ambiente multi-progetto e i tre flussi di connessione USB, Remote e Gadget.
- Rafforzate le capacità dell'API HTTP locale, della CLI e dello Skill in cinese per il ripristino dei dispositivi, l'attesa della sessione e i log incrementali; rimosso il livello di adattamento MCP duplicato e instabile.


Introduzione al progetto
-----------------------------------

<h3 align="center">Strumento grafico Frida progettato per PyCharm/IntelliJ</h3>

ZAFrida UI è un plugin di operazioni grafiche per Frida integrato in PyCharm e nella serie di IDE JetBrains. È pensato per risolvere i problemi delle operazioni da riga di comando di Frida, spesso macchinose, e della gestione disordinata degli script, offrendo un set completo di **interfaccia UI interattiva** per gestire dispositivi, processi, script e log.

Il punto di forza principale è il suo **sistema di gestione template "a caselle di controllo"**: l'utente può, selezionando/deselezionando, inserire dinamicamente frammenti di codice nello script principale o commentarli, realizzando così un assemblaggio "a blocchi" degli script di Hook. Allo stesso tempo, il plugin integra una completa **gestione a progetti** (`zafrida-project.xml`), che supporta il rapido cambio di configurazioni multi-dispositivo e multi-ambiente.

ZAFrida non sostituisce Frida, ma funge da potente interfaccia UI per `frida-tools`, integrandosi senza soluzione di continuità con il vostro ambiente Python e Frida esistente.

**Wiki semplificata**: [ZAFrida UI Wiki semplificata (BBS)](https://github.com/yilongmd/zafrida-ui/blob/main/zafrida_ui_wiki_bbs_zh.md) (questa è una Wiki più semplice)
**Tutorial d'uso dettagliato**: [ZAFrida UI Wiki tutorial d'uso dettagliato](https://github.com/yilongmd/zafrida-ui/blob/main/ZAFridaUI_Wiki_zh.md)

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

Guida rapida
-----------------------------------

1.  **Installare il plugin**: cercare "ZAFrida" nel marketplace dei plugin dell'IDE oppure installare da disco.
2.  **Configurare l'ambiente predefinito**: per impostazione predefinita viene utilizzato il Python Interpreter del progetto PyCharm corrente; in `Settings` globale -> `Tools` -> `ZAFrida` restano solo i valori predefiniti di nome/percorso degli strumenti.
3.  **Creare un progetto**: clic destro nella vista del progetto -> `New Frida Project`.
    * Se il progetto richiede una versione diversa di Frida, aprire `Project Settings` di ZAFrida, selezionare l'interprete Python o la directory dell'ambiente e cliccare `Test`.
4.  **Scrivere/selezionare lo script**: nel pannello Run selezionare il proprio `agent.js` o `agent.ts`.
5.  **Debug dell'Hook**:
* Connettere il dispositivo (USB o Remote o Gadget).
* Selezionare il processo o il nome del pacchetto di destinazione.
* Cliccare **Run**.
6.  **Usare i template**: passare alla scheda `Templates` e selezionare le funzionalità Hook desiderate (ad esempio "SSL Pinning Bypass"); il codice verrà automaticamente iniettato nel vostro script.
7.  **Automazione Skills (opzionale)**: disattivata per impostazione predefinita. Andare in `Settings/Preferences -> ZAFrida -> Skills HTTP API`, selezionare `Enable Skills` per avviare automaticamente l'API locale (oppure `Start/Stop` manuale), posizioni di CLI e template:
    * Skill e CLI principale: `skills-template/zafrida-http-control/`
    * Launcher compatibile con il vecchio percorso: `skills-cli/zafrida_skill_cli.py`

Codice QR del gruppo di scambio
-----------------------------------
<img src="https://assets.kitploit.com/production/public/readmes/11475/af2e178a9eee68ad3cbdf0c5b002b39f4c18f0128b73575324967291f19eeddc.jpg" alt="Codice QR del gruppo di scambio ZAFrida e reverse engineering" width="260" />

Funzionalità
-----------------------------------

* **Gestione dispositivi e processi**  
  Integra `frida-ls-devices` e `frida-ps`, supporta l'aggiornamento della lista dispositivi con un clic, la visualizzazione dei processi in esecuzione, delle App in esecuzione o delle applicazioni installate.

* **Connessione multi-modalità**  
  Supporto completo delle modalità **USB / Remote / Gadget**, con Host e Port remoti personalizzabili, senza dover comporre manualmente complessi parametri da riga di comando.

* **Esecuzione interattiva di script (Run / Attach)**
  * Supporto delle due azioni di esecuzione **Run (Spawn predefinito)** e **Attach**, e non di un semplice "cambio di modalità".
  * Supporto di **Force Stop** per terminare forzatamente l'applicazione di destinazione.
  * Output di log della console integrato, con salvataggio automatico dei log nella directory del progetto `zafrida-logs/`.

* **Menu contestuale dell'editor JS / TypeScript (importante)**
  * Nell'area di modifica dei file Frida `.js` o `.ts`, con il clic destro è possibile selezionare direttamente:
    * **Run Frida Script**: esegue il file corrente come script principale (Spawn predefinito).
    * **Attach Frida Script**: inietta il file corrente come script di attach nel processo di destinazione già in esecuzione.
  * Prima dell'esecuzione il file corrente viene salvato automaticamente e si passa automaticamente allo ZAFrida Project a cui appartiene lo script.
  * Adatto per PoC rapide, verifica di Demo, modalità Gadget o iniezione immediata in processi già in esecuzione.
  * **Scorciatoie**:
    * Windows / Linux: `Ctrl + Alt + S`
    * macOS: `⌘ + ⌥ + S`

* **Inserimento Snippets dal menu contestuale dell'editor**
  * Nel menu contestuale dell'editor JS / TypeScript è disponibile **ZAFrida Frida Snippets**.
  * Inserimento con un clic di frammenti di codice Frida comuni, ad esempio:
    * Struttura di wrapping `Java.perform`
    * Template di Hook di metodi Java
    * Native Hook con `Interceptor.attach`
  * Il processo di inserimento segue WriteCommandAction dell'IDE, con undo/redo sicuri.

* **Sistema di template dinamici (innovazione principale)**
  * Template Hook comuni integrati per Android / iOS (come SSL Pinning Bypass, Method Hook, Native Hook).
  * **Controllo tramite caselle di selezione**: selezionando si inserisce il codice, deselezionando il codice viene automaticamente commentato, senza necessità di modifiche manuali.
  * Supporto di template personalizzati, con anteprima del codice del template in tempo reale nell'IDE.

* **Design separato Run Script + Attach Script**
  * Supporto della coesistenza di uno **Run Script** principale e di un **Attach Script** indipendente.
  * Adatto per disaccoppiare gli "Hook di fase di avvio" dalla "logica di iniezione a runtime", facilitando debug complessi e manutenzione a lungo termine.

* **Configurazione a progetti (ZAFrida Project)**
  * Introduce il concetto di ZAFrida Project, salvando dispositivo, target, script, Attach Script, parametri di connessione e altro come contesto di lavoro completo.
  * Supporto nella Project View di:
    * `New Frida Project` per creare un nuovo progetto
    * `Select Frida Project` per cambiare rapidamente il progetto attivo corrente
    * `Load Frida Project` per importare una directory di progetto esistente
  * Dopo il cambio di progetto, lo stato della UI e la configurazione vengono ripristinati automaticamente.

* **Risoluzione intelligente dell'ambiente Python / Frida**
  * Per impostazione predefinita risolve il Python SDK del progetto PyCharm corrente; ogni ZAFrida Project può sovrascrivere singolarmente l'interprete o la directory dell'ambiente.
  * Supporto di ambienti locali system/pyenv, venv/virtualenv, Conda, uv, Poetry, Pipenv, Hatch.
  * Più ZAFrida Project possono scegliere lo stesso percorso per condividere l'ambiente, senza copiare il venv; adatto per mantenere separatamente ambienti Frida 16/17.
  * Se nell'ambiente IDE corrente o nell'ambiente di progetto esplicito manca `frida-tools` viene segnalato direttamente un errore, senza utilizzare silenziosamente un'altra versione presente nel PATH di sistema; `Test` può mostrare la versione effettiva di Frida.
  * Gli Interpreter Python remoti come SSH, Docker, Docker Compose, WSL non possono ancora essere utilizzati per il sottoprocesso Frida locale.

* **Frida 17 / TypeScript**
  * La selezione dei file, il clic destro Run/Attach e gli Snippets supportano `.js` / `.ts`; la REPL di Frida 17 compila automaticamente `-l agent.ts`.
  * I template integrati sono stati migrati alle moderne API Module/NativePointer di Frida 17, mantenendo al contempo la compatibilità con gli ambienti Frida 16 più comuni.
  * La REPL di frida-tools include per compatibilità i bridge standard Java/ObjC; quando si usano `import` di moduli npm/di terze parti è necessario gestire le dipendenze tramite `frida-create -t agent` o un progetto equivalente.

* **Interfaccia di automazione locale Skills**
  * L'API HTTP locale Skills (disattivata per impostazione predefinita) supporta la scoperta delle capacità, l'ambiente di progetto/Python, dispositivi e processi, Run/Attach, l'elenco dei log storici e la lettura incrementale dei log basata su cursore a byte.
  * Lo Skill integra flussi di ripristino con `wait-device` / `wait-session` limitati, e distingue le letture ritentabili in sicurezza dalle operazioni con effetti collaterali non riproducibili automaticamente.
  * Modalità di attivazione: `Settings/Preferences -> ZAFrida -> Skills HTTP API`, selezionare `Enable Skills`.
  * CLI e template di accompagnamento:
    * `skills-template/zafrida-http-control/` (Skill principale e CLI)
    * `skills-cli/zafrida_skill_cli.py` (launcher compatibile con il vecchio percorso)

Scenari applicativi
-----------------------------------
ZAFrida UI è adatto a tutti gli scenari di reverse engineering che utilizzano Frida, in particolare:
* Penetration test e analisi di reverse engineering di App Android / iOS.
* Processi di debug che richiedono il frequente cambio di script Hook diversi.
* Ingegneri abituati a usare l'IDE (PyCharm/IDEA) per lo sviluppo misto di Python, JavaScript e TypeScript.

Documentazione tecnica
-----------------------------------

- **Requisiti di ambiente**:
  - IntelliJ IDEA o PyCharm (consigliato 2024.3+)
  - Python3 e `frida-tools` installati localmente (`pip install frida-tools`)
  - Assicurarsi che `frida`, `frida-ps`, `frida-ls-devices` siano nel PATH di sistema o specificarne il percorso nelle impostazioni del plugin.

- **Segnalazione problemi**: [Github Issues](https://github.com/yilongmd/zafrida-ui/issues)

Avvio del progetto
-----------------------------------

1.  Clonare il codice sorgente: `git clone https://github.com/yilongmd/zafrida-ui.git`
2.  Aprire il progetto con IntelliJ IDEA.
3.  Eseguire il task Gradle `runIde` per avviare l'ambiente di debug.

Effetti di sistema
-----------------------------------

##### Interfaccia principale e pannello di esecuzione (Run Panel)
> Offre selezione del dispositivo, selezione dello script, configurazione della modalità di esecuzione e output della console.

![Run Panel](https://assets.kitploit.com/production/public/readmes/11475/01ec2353341ebe2f41b51108b72cc0ba66b520589b2e58653899c40fff6aee8d.png "Run Panel Screenshot")
##### Gestione dinamica dei template (Template Panel)
> A sinistra si sceglie la categoria, al centro si selezionano i template, a destra si visualizza in tempo reale l'anteprima del codice. Le caselle di controllo controllano direttamente l'attivazione o meno del contenuto dello script.

![Template Panel](https://assets.kitploit.com/production/public/readmes/11475/c23d54b54e8d2cdceb97d4680b9f2735c6afd5722d0bd76bd30b06706e833205.png "Template Panel Screenshot")
##### Interfaccia delle impostazioni (Settings)
> Supporta la personalizzazione del percorso degli strumenti Frida, dell'indirizzo di connessione remota e della configurazione dei log.

![Settings](https://assets.kitploit.com/production/public/readmes/11475/b1651ec2b67aa8d74f45d476445329570c884c2d011af4768401aa12da2ff202.png "Settings Screenshot")
##### Procedura guidata di creazione progetto
> Crea rapidamente una struttura di progetto Frida standardizzata.

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

Architettura tecnica
-----------------------------------

#### Ambiente di sviluppo
- Linguaggio: Java 21, Java, script di build con Gradle Kotlin DSL
- Framework: IntelliJ Platform SDK
- Strumento di build: Gradle
- Dipendenze: `frida` `frida-tools` (Python environment)


Ringraziamenti
-----------------------------------
Un ringraziamento speciale ai seguenti esperti per il supporto ai template di script Frida JS forniti a questo progetto:

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

Per ulteriori contributori e informazioni di ringraziamento vedere: [CONTRIBUTORS.md](https://github.com/yilongmd/zafrida-ui/blob/main/CONTRIBUTORS.md)
Scarica lo strumento