
Ein Notizbuch zum Schreiben von Notizen während der Verwendung von rizin!
Ein Notebook für die binäre Analyse mit rizin. Organisieren Sie Notizen, Befehle und Skripte pro Binärdatei.
Erfordert rizin 0.7.0 oder neuer.
Jede Notebook-Seite ist an eine Binärdatei gebunden. Sie speichert die Binärdatei selbst, ihren SHA-256-Hash und eine Liste von Zellen:
Seiten werden als einzelne .rznb-Dateien (SQLite-Datenbanken) in ~/.rizin-notebook/ gespeichert. Sie können als einzelne, in sich geschlossene Dateien exportiert und importiert werden.
rizin-notebook) - die Hauptanwendung. Bietet eine Weboberfläche, stellt eine protobuf + JSON REST API bereit, speichert alles in seitenbezogenen .rznb SQLite-Dateien.NB-Befehle hinzu, damit Sie über die rizin-Shell mit dem Notebook interagieren können.Die Plugins sind optional. Der Go-Server funktioniert eigenständig mit nur einem Browser.
Der Go-Server ist plattformunabhängig. Die Plugins hängen von der Rizin-Version ab, gegen die sie gebaut wurden.
Wenn eigenständiges rizin und Cutter auf Ihrem Rechner unterschiedliche Rizin-Versionen mitbringen, bauen Sie rz_notebook einmal für jede Version. Beide Builds können mit demselben Server kommunizieren und dieselben .rznb-Daten teilen.
Einfache Regel:
rz_notebook-Build pro verwendeter Rizin-VersionProjekt-Bildschirmfotos sind unter docs/images/ organisiert.
Abbildung 1. Startseitenansicht (mit zellen- und bereichsbasierter Suche, die mehrere Modi unterstützt).
Abbildung 2. Einstellungsseite für Umgebungskonfiguration, Tastaturkürzel und serverseitiges Verhalten.
Abbildung 3. Autovervollständigungsvorschläge für Rizin-Befehle in der Notebook-Weboberfläche.
Abbildung 4. Integrierte Befehlshilfe und Suchmodul zum Erkunden von Befehlsbeschreibungen und -argumenten.
Abbildung 5. Integration des Rizin-Kernplugins, das die Notebook-Interaktion direkt von der Rizin-Shell aus ermöglicht.
Abbildung 6. Ansicht der Cutter-Plugin-Integration, die die Notebook-Erfahrung innerhalb der Cutter-Oberfläche zeigt.
Abbildung 7. Zusätzliche Ansicht des Cutter-Plugin-Workflows, die mögliche Notebook-Nutzungen demonstriert.
go build -o rizin-notebook .
Betten Sie die Versionszeichenfolge während der Release-Builds ein:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Wird standardmäßig unter http://127.0.0.1:8000/ geöffnet.
Flags:
-bind 127.0.0.1:8000 Adresse und Port, die überwacht werden sollen
-root / URL-Pfadpräfix
-notebook /path/to/data Datenverzeichnis (Standard: ~/.rizin-notebook)
-debug-assets /path Vorlagen von der Festplatte laden statt eingebettet
-debug HTTP-Anforderungsprotokollierung aktivieren
Setzen Sie RIZIN_PATH, um den für die Pipe-Ausführung verwendeten rizin-Binärpfad zu überschreiben.
Siehe rizin-notebook-plugin/README.md.
Siehe cutter-notebook-plugin/README.md.
Wenn Cutter ein eigenes eingebettetes Rizin mitbringt, muss das von Cutter geladene rz_notebook-Plugin gegen dieselbe gebündelte Rizin-Version gebaut werden.
Jede Seite ist eine .rznb-Datei im Datenverzeichnis. Es ist eine SQLite-Datenbank mit:
Der Server unterhält einen catalog.db-Index für schnelle Auflistung über alle Seiten hinweg.
Beim ersten Start migriert der Server automatisch alle Seiten von einem älteren monolithischen notebook.db-Format in das seitenbezogene .rznb-Layout.
Alle NB-Plugin-Befehle verwenden die protobuf-API (Content-Type: application/x-protobuf). Das Schema befindet sich in proto/notebook.proto.
Eine parallele JSON-API unter /api/v1/json/... wird vom Cutter-Plugin und der Browser-Benutzeroberfläche verwendet.