
Un carnet de notes pour écrire des notes tout en utilisant Rizin & Cutter!
Un notebook pour l'analyse binaire avec rizin. Gardez les notes, commandes et scripts organisés par binaire.
Nécessite rizin 0.7.0 ou version ultérieure.
Chaque page du notebook est liée à un binaire. Elle stocke le binaire lui-même, son empreinte SHA-256 et une liste de cellules :
Les pages sont stockées sous forme de fichiers .rznb individuels (bases de données SQLite) dans ~/.rizin-notebook/. Elles peuvent être exportées et importées comme des fichiers autonomes uniques.
rizin-notebook) - l'application principale. Sert une interface web, expose une API REST protobuf + JSON, stocke tout dans des fichiers SQLite .rznb par page.NB à rizin pour interagir avec le notebook depuis le shell rizin.Les plugins sont optionnels. Le serveur Go fonctionne de manière autonome avec un simple navigateur.
Le serveur Go est indépendant de la plateforme. Les plugins dépendent de la version de Rizin avec laquelle ils sont compilés.
Si rizin et Cutter sont livrés avec des versions différentes de Rizin sur votre machine, compilez rz_notebook une fois pour chaque. Les deux builds peuvent communiquer avec le même serveur et partager les mêmes données .rznb.
Règle simple :
rz_notebook par version de Rizin utiliséeLes captures d'écran du projet sont organisées sous docs/images/.
Figure 1. Vue de la page d'accueil (avec recherche par cellule et par portée, prenant en charge plusieurs modes.)
Figure 2. Page de configuration de l'environnement, des raccourcis clavier et du comportement côté serveur.
Figure 3. Autocomplétion des commandes dans la console web, aidant à découvrir et compléter rapidement les commandes Rizin.
Figure 4. Aide intégrée et modal de recherche des commandes pour explorer les descriptions et arguments des commandes.
Figure 5. Intégration du plugin noyau Rizin, permettant l'interaction avec le notebook directement depuis le shell Rizin.
Figure 6. Vue de l'intégration du plugin Cutter montrant l'expérience notebook dans l'interface Cutter.
Figure 7. Vue supplémentaire du flux de travail du plugin Cutter démontrant les utilisations possibles du notebook.
go build -o rizin-notebook .
Embed the version string during release builds:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Opens at http://127.0.0.1:8000/ by default.
Flags:
-bind 127.0.0.1:8000 adresse et port d'écoute
-root / préfixe du chemin d'URL
-notebook /path/to/data répertoire de données (par défaut : ~/.rizin-notebook)
-debug-assets /path charger les modèles depuis le disque au lieu des modèles embarqués
-debug activer les logs des requêtes HTTP
Définissez RIZIN_PATH pour remplacer le chemin du binaire rizin utilisé pour l'exécution du pipe.
Voir rizin-notebook-plugin/README.md.
Voir cutter-notebook-plugin/README.md.
Si Cutter est livré avec son propre Rizin embarqué, le plugin rz_notebook chargé par Cutter doit être compilé contre cette même version groupée de Rizin.
Chaque page est un fichier .rznb dans le répertoire de données. Il s'agit d'une base de données SQLite contenant :
Le serveur maintient un index catalog.db pour un listage rapide sur toutes les pages.
Lors de la première exécution, le serveur migre automatiquement toutes les pages d'un ancien format monolithique notebook.db vers la disposition par page .rznb.
Toutes les commandes du plugin NB utilisent l'API protobuf (Content-Type: application/x-protobuf). Le schéma se trouve dans proto/notebook.proto.
Une API JSON parallèle à /api/v1/json/... est utilisée par le plugin Cutter et l'interface du navigateur.