
Ein Notizbuch, in das man Notizen schreibt, während man Rizin & Cutter verwendet!
Ein Notizbuch für die Binäranalyse mit Rizin. Organisieren Sie Notizen, Befehle und Skripte pro Binärdatei.
Erfordert Rizin 0.7.0 oder neuer.
Jede Notizbuch-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 eigenständige Dateien exportiert und importiert werden.
rizin-notebook) – die Hauptanwendung. Stellt eine Weboberfläche bereit, bietet eine
Protobuf- + JSON-REST-API, speichert alles in seitenweisen .rznb-SQLite-Dateien.NB-Befehle hinzu, sodass Sie
aus der Rizin-Shell mit dem Notizbuch interagieren können.Die Plugins sind optional. Der Go-Server funktioniert eigenständig mit einem Browser.
Der Go-Server ist plattformunabhängig. Die Plugins hängen von der verwendeten Rizin-Version ab, gegen die sie kompiliert wurden.
Wenn auf Ihrem Rechner eigenständiges Rizin und Cutter 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 verwenden.
Einfache Regel:
rz_notebook-Build pro verwendeter Rizin-VersionProjekt-Screenshots 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. Befehlsautovervollständigung in der Webkonsole, die hilft, Rizin-Befehle schnell zu entdecken und zu vervollständigen.
Abbildung 4. Integrierte Befehlshilfe und Such-Modal zum Erkunden von Befehlsbeschreibungen und -argumenten.
Abbildung 5. Rizin Core-Plugin-Integration, die die Notizbuch-Interaktion direkt aus der Rizin-Shell ermöglicht.
Abbildung 6. Cutter-Plugin-Integrationsansicht, die das Notizbucherlebnis innerhalb der Cutter-Oberfläche zeigt.
Abbildung 7. Zusätzliche Cutter-Plugin-Workflow-Ansicht, die mögliche Notizbuchverwendungen demonstriert.
go build -o rizin-notebook .
Versionstring während Release-Builds einbetten:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Öffnet standardmäßig unter http://127.0.0.1:8000/.
Flags:
-bind 127.0.0.1:8000 Adresse und Port, auf denen gelauscht wird
-root / URL-Pfadpräfix
-notebook /path/to/data Datenverzeichnis (Standard: ~/.rizin-notebook)
-debug-assets /path Vorlagen von Festplatte laden statt eingebettet
-debug HTTP-Anfragelogs 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 kompiliert werden.
Jede Seite ist eine .rznb-Datei im Datenverzeichnis. Es handelt sich um eine SQLite-Datenbank, die Folgendes enthält:
Der Server verwaltet einen catalog.db-Index für schnelle Auflistung über alle Seiten hinweg.
Beim ersten Start migriert der Server automatisch alle Seiten aus einem älteren monolithischen
notebook.db-Format in das seitenweise .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-Oberfläche verwendet.