
Un taccuino dove scrivere note mentre si utilizza Rizin & Cutter!
Un notebook per l'analisi binaria con rizin. Tieni note, comandi e script organizzati per binario.
Richiede rizin 0.7.0 o successivo.
Ogni pagina del notebook è legata a un binario. Memorizza il binario stesso, il suo hash SHA-256, e un elenco di celle:
Le pagine sono memorizzate come singoli file .rznb (database SQLite) in ~/.rizin-notebook/.
Possono essere esportate e importate come singoli file auto-contenuti.
rizin-notebook) - l'applicazione principale. Serve un'interfaccia web, espone
un'API REST protobuf + JSON, memorizza tutto in file .rznb SQLite per pagina.NB a rizin in modo
da poter interagire con il notebook dalla shell di rizin.I plugin sono opzionali. Il server Go funziona in autonomia con solo un browser.
Il server Go è indipendente dalla piattaforma. I plugin dipendono dalla versione di Rizin contro cui sono compilati.
Se rizin standalone e Cutter usano versioni diverse di Rizin sulla tua macchina, compila
rz_notebook una volta per ciascuna. Entrambe le build possono comunicare con lo stesso server
e condividere gli stessi dati .rznb.
Regola semplice:
rz_notebook per ogni versione di Rizin in usoGli screenshot del progetto sono organizzati in docs/images/.
Figura 1. Vista homepage (con ricerca per cella e ambito, con supporto di più modalità.)
Figura 2. Pagina delle impostazioni per la configurazione dell'ambiente, scorciatoie da tastiera e comportamento lato server.
Figura 3. Completamento automatico dei comandi nella console web, per scoprire e completare rapidamente i comandi di Rizin.
Figura 4. Modale integrata di aiuto e ricerca comandi per esplorare descrizioni e argomenti dei comandi.
Figura 5. Integrazione del plugin core di Rizin, che consente l'interazione con il notebook direttamente dalla shell di Rizin.
Figura 6. Vista dell'integrazione del plugin Cutter che mostra l'esperienza notebook all'interno dell'interfaccia di Cutter.
Figura 7. Vista aggiuntiva del flusso di lavoro del plugin Cutter che mostra possibili utilizzi del notebook.
go build -o rizin-notebook .
Incorpora la stringa di versione durante le build di rilascio:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Si apre su http://127.0.0.1:8000/ per impostazione predefinita.
Flag:
-bind 127.0.0.1:8000 indirizzo e porta su cui ascoltare
-root / prefisso del percorso URL
-notebook /path/to/data directory dei dati (default: ~/.rizin-notebook)
-debug-assets /path carica i template dal disco invece che incorporati
-debug abilita i log delle richieste HTTP
Imposta RIZIN_PATH per sovrascrivere il percorso del binario rizin usato per l'esecuzione tramite pipe.
Vedi rizin-notebook-plugin/README.md.
Vedi cutter-notebook-plugin/README.md.
Se Cutter distribuisce il proprio Rizin incorporato, il plugin rz_notebook caricato da Cutter deve essere
compilato contro la stessa versione di Rizin inclusa.
Ogni pagina è un file .rznb nella directory dei dati. È un database SQLite contenente:
Il server mantiene un indice catalog.db per l'elencazione rapida di tutte le pagine.
Al primo avvio, il server migra automaticamente le pagine da un vecchio formato monolitico
notebook.db nel layout a pagine .rznb.
Tutti i comandi del plugin NB usano l'API protobuf (Content-Type: application/x-protobuf).
Lo schema si trova in proto/notebook.proto.
Un'API JSON parallela su /api/v1/json/... è utilizzata dal plugin Cutter e dall'interfaccia browser.