Zurück zu den Updates
New releaseSep 3, 2026

zafrida-ui v0.3.7

Ein Frida-UI-Tool-Fenster in PyCharm / JetBrains-IDEs.

Teilen

中文 | English

ZAFrida UI ZAFrida UI - PyCharm Frida Plugin

Aktuelle Version: 0.3.7

License GitHub stars

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

Home

Schnellstart

  1. Plugin installieren: Suchen Sie im IDE-Plugin-Markt nach "ZAFrida" oder installieren Sie es über die Festplatte.
  2. Standardumgebung konfigurieren: Standardmäßig wird der Python-Interpreter des aktuellen PyCharm-Projekts verwendet; in den globalen Settings -> Tools -> ZAFrida bleiben nur die Standardwerte für Tool-Namen/Pfade erhalten.
  3. 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 auf Test.
  4. Skript schreiben/auswählen: Wählen Sie im Run-Panel Ihre agent.js oder agent.ts aus.
  5. Hook-Debugging:
  • Gerät verbinden (USB oder Remote oder Gadget).
  • Zielprozess oder Paketnamen auswählen.
  • Auf Run klicken.
  1. Templates verwenden: Wechseln Sie zum Tab Templates und aktivieren Sie die gewünschten Hook-Funktionen (z. B. "SSL Pinning Bypass"). Der Code wird automatisch in Ihr Skript eingefügt.
  2. Skills-Automatisierung (optional): Standardmäßig deaktiviert. Gehen Sie zu Settings/Preferences -> ZAFrida -> Skills HTTP API und aktivieren Sie Enable Skills, um die lokale API automatisch zu starten (auch manuell über Start/Stop mö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

QR-Code der Community-Gruppe

ZAFrida与逆向交流群二维码

Funktionen

  • Geräte- und Prozessverwaltung
    Integriert frida-ls-devices und frida-ps und 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
  • 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.attach Native Hook
    • Die Einfügung folgt der IDE-WriteCommandAction und 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 Project zum Erstellen eines neuen Projekts
      • Select Frida Project zum schnellen Wechsel des aktuell aktiven Projekts
      • Load Frida Project zum 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-tools fehlt, wird direkt ein Fehler ausgegeben, ohne stillschweigend eine andere Version aus dem System-PATH zu verwenden; Test zeigt 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.ts automatisch.
    • 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 import mit npm-/Drittanbieter-Modulen sollten Abhängigkeiten über frida-create -t agent oder ein gleichwertiges Projekt verwaltet werden.
  • 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 Sie Enable 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-devices im System-PATH liegen oder in den Plugin-Einstellungen Pfade angegeben sind.
  • Problem-Feedback: Github Issues

Projekt starten

  1. Quellcode klonen: git clone https://github.com/yilongmd/zafrida-ui.git
  2. Öffnen Sie das Projekt mit IntelliJ IDEA.
  3. Führen Sie die Gradle-Aufgabe runIde aus, um die Debug-Umgebung zu starten.

Systemansichten

Hauptoberfläche und Run-Panel

Bietet Geräteauswahl, Skriptauswahl, Laufmodus-Konfiguration und Konsolenausgabe.

Run Panel

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.

Template Panel

Einstellungen (Settings)

Unterstützt benutzerdefinierte Frida-Tool-Pfade, Remote-Verbindungsadressen und Log-Konfiguration.

Settings

Projekt-Erstellungsassistent

Erstellt schnell eine standardisierte Frida-Projektstruktur.

New Project

Technische Architektur

Entwicklungsumgebung

  • Sprache: Java 21, Java, Build-Skripte mit Gradle Kotlin DSL
  • Framework: IntelliJ Platform SDK
  • Build-Tool: Gradle
  • Abhängigkeiten: frida frida-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

Kategorien