
zafrida-ui v0.3.7
Ein Frida-UI-Tool-Fenster in PyCharm / JetBrains-IDEs.
中文 | English
ZAFrida UI - PyCharm Frida Plugin
Aktuelle Version: 0.3.7
Wichtigste Aktualisierungen in 0.3.7
- Jedes ZAFrida-Projekt kann die Python-/Frida-Umgebung unabhängig auswählen oder gemeinsam nutzen. Standardmäßig wird der Interpreter des aktuellen PyCharm-Projekts verwendet; lokale Umgebungen wie venv, Conda, uv, Poetry, Pipenv und Hatch werden unterstützt.
- Die Session-UI und die Projekteinstellungen wurden neu gestaltet. Plugin-, Python- und Frida-Versionsinformationen werden vollständig angezeigt, und das Log-Panel sowie der Session-Status wurden mit adaptivem, ziehbarem Verhalten optimiert.
- Vollständige Unterstützung für
.js/.ts, Frida 16/17, Wechsel zwischen mehreren Projektumgebungen sowie die drei Verbindungsabläufe USB, Remote und Gadget. - Die lokale HTTP-API, CLI und die chinesischen Skills wurden um Gerätewiederherstellung, Session-Wait und inkrementelle Log-Fähigkeiten erweitert; die redundante und instabile MCP-Adapter-Schicht wurde entfernt.
Projektvorstellung
Ein grafisches Frida-Tool, das speziell für PyCharm/IntelliJ entwickelt wurde
ZAFrida UI ist ein grafisches Frida-Bedienungs-Plugin, das in PyCharm und JetBrains-IDE-Produkten integriert ist. Es zielt darauf ab, die mühsamen Frida-Kommandozeilenoperationen und die unübersichtliche Skriptverwaltung zu lösen, und bietet eine vollständige UI-Oberfläche zur Verwaltung von Geräten, Prozessen, Skripten und Logs.
Der Kernpunkt liegt in seinem "Checkbox-basierten" Template-Verwaltungssystem: Benutzer können durch Ankreuzen/Abwählen Codefragmente dynamisch in das Hauptskript einfügen oder auskommentieren, wodurch eine "bausteinartige" Zusammenstellung von Hook-Skripten ermöglicht wird. Darüber hinaus verfügt das Plugin über eine integrierte projektbasierte Verwaltung (zafrida-project.xml), die einen schnellen Wechsel zwischen Multi-Geräte- und Multi-Umgebungs-Konfigurationen unterstützt.
ZAFrida ersetzt Frida nicht, sondern dient als leistungsstarke UI-Hülle für frida-tools und fügt sich nahtlos in Ihre bestehende Python- und Frida-Umgebung ein.
Einfache Wiki-Version: ZAFrida UI Einfache Wiki (BBS) (Dies ist die einfachere Wiki) Detailliertes Tutorial: ZAFrida UI Detailliertes Tutorial Wiki
Demo

Schnellstart
- Plugin installieren: Suchen Sie im IDE-Plugin-Markt nach "ZAFrida" oder installieren Sie es über die Festplatte.
- Standardumgebung konfigurieren: Standardmäßig wird der Python-Interpreter des aktuellen PyCharm-Projekts verwendet; in den globalen
Settings->Tools->ZAFridableiben nur die Standardwerte für Tool-Namen/Pfade erhalten. - Projekt erstellen: Rechtsklick in der Projektansicht ->
New Frida Project.- Wenn dieses Projekt eine andere Frida-Version benötigt, öffnen Sie die ZAFrida
Project Settings, wählen Sie den Python-Interpreter oder das Umgebungsverzeichnis aus und klicken Sie aufTest.
- Wenn dieses Projekt eine andere Frida-Version benötigt, öffnen Sie die ZAFrida
- Skript schreiben/auswählen: Wählen Sie im Run-Panel Ihre
agent.jsoderagent.tsaus. - Hook-Debugging:
- Gerät verbinden (USB oder Remote oder Gadget).
- Zielprozess oder Paketnamen auswählen.
- Auf Run klicken.
- Templates verwenden: Wechseln Sie zum Tab
Templatesund aktivieren Sie die gewünschten Hook-Funktionen (z. B. "SSL Pinning Bypass"). Der Code wird automatisch in Ihr Skript eingefügt. - Skills-Automatisierung (optional): Standardmäßig deaktiviert. Gehen Sie zu
Settings/Preferences -> ZAFrida -> Skills HTTP APIund aktivieren SieEnable Skills, um die lokale API automatisch zu starten (auch manuell überStart/Stopmöglich). CLI- und Template-Speicherorte:- Skill und Haupt-CLI:
skills-template/zafrida-http-control/ - Kompatibilitäts-Launcher für alten Pfad:
skills-cli/zafrida_skill_cli.py
- Skill und Haupt-CLI:
QR-Code der Community-Gruppe
Funktionen
-
Geräte- und Prozessverwaltung
Integriertfrida-ls-devicesundfrida-psund unterstützt das Aktualisieren der Geräteliste mit einem Klick sowie das Anzeigen laufender Prozesse, laufender Apps oder installierter Anwendungen. -
Multi-Modus-Verbindung
Vollständige Unterstützung für USB / Remote / Gadget-Modi, inklusive benutzerdefiniertem Remote-Host und -Port, ohne mühsames manuelles Zusammenstellen komplexer Kommandozeilenargumente. -
Interaktive Skriptausführung (Run / Attach)
- Unterstützt Run (Standard: Spawn) und Attach als zwei Ausführungsaktionen, nicht nur als einfachen "Moduswechsel".
- Unterstützt Force Stop zum erzwungenen Stoppen der Ziel-App.
- Integrierte Konsolen-Logausgabe mit automatischer Speicherung der Logs im Projektverzeichnis
zafrida-logs/.
-
Kontextmenü im JS-/TypeScript-Editor (wichtig)
- Rechtsklick im Bearbeitungsbereich einer Frida-
.js- oder.ts-Datei ermöglicht die direkte Auswahl von:- Run Frida Script: Führt die aktuelle Datei als Hauptskript aus (Standard: Spawn).
- Attach Frida Script: Injiziert die aktuelle Datei als Anhangsskript in einen bereits laufenden Zielprozess.
- Vor der Ausführung wird die aktuelle Datei automatisch gespeichert und automatisch zum ZAFrida-Projekt des Skripts gewechselt.
- Geeignet für schnelle PoCs, Demo-Validierung, Gadget-Modus oder sofortige Injektion in laufende Prozesse.
- Tastenkürzel:
- Windows / Linux:
Ctrl + Alt + S - macOS:
⌘ + ⌥ + S
- Windows / Linux:
- Rechtsklick im Bearbeitungsbereich einer Frida-
-
Snippets-Einfügung über Editor-Kontextmenü
- Bietet ZAFrida Frida Snippets im Kontextmenü des JS-/TypeScript-Editors.
- Fügt mit einem Klick gängige Frida-Codefragmente ein, z. B.:
Java.perform-Wrapper-Struktur- Java-Methoden-Hook-Vorlage
Interceptor.attachNative Hook
- Die Einfügung folgt der IDE-
WriteCommandActionund kann sicher rückgängig gemacht/erneut ausgeführt werden.
-
Dynamisches Template-System (Kerninnovation)
- Integrierte gängige Android-/iOS-Hook-Templates (z. B. SSL Pinning Bypass, Method Hook, Native Hook).
- Checkbox-Steuerung: Ankreuzen fügt Code ein, Abwählen kommentiert den Code automatisch aus – kein manuelles Löschen oder Ändern erforderlich.
- Unterstützt benutzerdefinierte Templates mit Live-Vorschau des Template-Codes in der IDE.
-
Getrenntes Design von Run Script + Attach Script
- Unterstützt das gleichzeitige Vorhandensein eines Haupt-Run Scripts und eines unabhängigen Attach Scripts.
- Geeignet, um "Startzeit-Hooks" von "Laufzeit-Injektionslogik" zu entkoppeln, was komplexes Debugging und langfristige Wartung erleichtert.
-
Projektbasierte Konfiguration (ZAFrida Project)
- Führt das Konzept des ZAFrida-Projekts ein, das Gerät, Ziel, Skript, Attach Script, Verbindungsparameter usw. als vollständigen Arbeitskontext speichert.
- Unterstützt in der Projektansicht:
New Frida Projectzum Erstellen eines neuen ProjektsSelect Frida Projectzum schnellen Wechsel des aktuell aktiven ProjektsLoad Frida Projectzum Importieren eines vorhandenen Projektverzeichnisses
- Nach dem Projektwechsel werden UI-Zustand und Konfiguration automatisch wiederhergestellt.
-
Intelligente Python-/Frida-Umgebungsauflösung
- Löst standardmäßig das Python-SDK des aktuellen PyCharm-Projekts auf; jedes ZAFrida-Projekt kann den Interpreter oder das Umgebungsverzeichnis separat überschreiben.
- Unterstützt lokale system/pyenv-, venv/virtualenv-, Conda-, uv-, Poetry-, Pipenv- und Hatch-Umgebungen.
- Mehrere ZAFrida-Projekte können denselben Pfad für eine gemeinsame Umgebung wählen, ohne venv zu kopieren; geeignet für die getrennte Pflege von Frida-16/17-Umgebungen.
- Wenn in der aktuellen IDE-Umgebung oder der expliziten Projektumgebung
frida-toolsfehlt, wird direkt ein Fehler ausgegeben, ohne stillschweigend eine andere Version aus dem System-PATH zu verwenden;Testzeigt die tatsächliche Frida-Version an. - Remote-Python-Interpreter wie SSH, Docker, Docker Compose und WSL können derzeit nicht für lokale Frida-Subprozesse verwendet werden.
-
Frida 17 / TypeScript
- Dateiauswahl, Rechtsklick-Run/Attach und Snippets unterstützen
.js/.ts; die Frida-17-REPL kompiliert-l agent.tsautomatisch. - Integrierte Templates wurden auf die modernen Module-/NativePointer-APIs von Frida 17 migriert, während gängige Frida-16-Umgebungen weiterhin funktionsfähig bleiben.
- Die frida-tools-REPL bringt kompatibel die Standard-Java-/ObjC-Bridges mit; bei Verwendung von
importmit npm-/Drittanbieter-Modulen sollten Abhängigkeiten überfrida-create -t agentoder ein gleichwertiges Projekt verwaltet werden.
- Dateiauswahl, Rechtsklick-Run/Attach und Snippets unterstützen
-
Lokale Skills-Automatisierungsschnittstelle
- Die lokale Skills-HTTP-API (standardmäßig deaktiviert) unterstützt Fähigkeitserkennung, Projekt-/Python-Umgebung, Geräte und Prozesse, Run/Attach, Verlaufslog-Listen und inkrementelles Log-Lesen auf Basis eines Byte-Cursors.
- Der Skill enthält begrenzte
wait-device- /wait-session-Wiederherstellungsabläufe und unterscheidet zwischen sicher wiederholbaren Lesevorgängen und nicht automatisch wiederholbaren Nebenwirkungsoperationen. - Aktivierung:
Settings/Preferences -> ZAFrida -> Skills HTTP API, aktivieren SieEnable Skills. - Zugehörige CLI und Templates:
skills-template/zafrida-http-control/(Haupt-Skill und CLI)skills-cli/zafrida_skill_cli.py(Kompatibilitäts-Launcher für alten Pfad)
Anwendungsfälle
ZAFrida UI eignet sich für alle Szenarien der Reverse Engineering mit Frida, insbesondere:
- Penetrationstests und Reverse-Engineering-Analyse von Android-/iOS-Apps.
- Debugging-Prozesse, die häufiges Wechseln zwischen verschiedenen Hook-Skripten erfordern.
- Ingenieure, die es gewohnt sind, IDEs (PyCharm/IDEA) für die gemischte Entwicklung mit Python, JavaScript und TypeScript zu verwenden.
Technische Dokumentation
-
Umgebungsanforderungen:
- IntelliJ IDEA oder PyCharm (empfohlen: 2024.3+)
- Lokal installiertes Python3 und
frida-tools(pip install frida-tools) - Stellen Sie sicher, dass
frida,frida-ps,frida-ls-devicesim System-PATH liegen oder in den Plugin-Einstellungen Pfade angegeben sind.
-
Problem-Feedback: Github Issues
Projekt starten
- Quellcode klonen:
git clone https://github.com/yilongmd/zafrida-ui.git - Öffnen Sie das Projekt mit IntelliJ IDEA.
- Führen Sie die Gradle-Aufgabe
runIdeaus, um die Debug-Umgebung zu starten.
Systemansichten
Hauptoberfläche und Run-Panel
Bietet Geräteauswahl, Skriptauswahl, Laufmodus-Konfiguration und Konsolenausgabe.

Dynamische Template-Verwaltung (Template-Panel)
Links Kategorieauswahl, in der Mitte Template-Auswahl, rechts Live-Vorschau des Codes. Die Checkboxen steuern direkt, ob der Skriptinhalt aktiv ist.

Einstellungen (Settings)
Unterstützt benutzerdefinierte Frida-Tool-Pfade, Remote-Verbindungsadressen und Log-Konfiguration.

Projekt-Erstellungsassistent
Erstellt schnell eine standardisierte Frida-Projektstruktur.

Technische Architektur
Entwicklungsumgebung
- Sprache: Java 21, Java, Build-Skripte mit Gradle Kotlin DSL
- Framework: IntelliJ Platform SDK
- Build-Tool: Gradle
- Abhängigkeiten:
fridafrida-tools(Python-Umgebung)
Danksagungen
Besonderer Dank geht an die folgenden Personen für die Bereitstellung von Frida-JS-Skriptvorlagen für dieses Projekt:
- Xiao Jia
- Lane
- Mi Ren
Weitere Mitwirkende und Danksagungen finden Sie unter: CONTRIBUTORS.md