
Un cuaderno para escribir notas mientras se usa Rizin y Cutter!
Un cuaderno para análisis binario con rizin. Mantén notas, comandos y scripts organizados por binario.
Requiere rizin 0.7.0 o posterior.
Cada página del cuaderno está vinculada a un binario. Almacena el binario en sí, su hash SHA-256 y una lista de celdas:
Las páginas se almacenan como archivos .rznb individuales (bases de datos SQLite) en ~/.rizin-notebook/.
Se pueden exportar e importar como un solo archivo autocontenido.
rizin-notebook) - la aplicación principal. Sirve una interfaz web, expone una API REST protobuf + JSON, almacena todo en archivos SQLite .rznb por página.NB a rizin para que puedas interactuar con el cuaderno desde el shell de rizin.Los plugins son opcionales. El servidor Go funciona de forma independiente solo con un navegador.
El servidor Go es independiente de la plataforma. Los plugins dependen de la versión de Rizin contra la que se compilaron.
Si rizin independiente y Cutter incluyen diferentes versiones de Rizin en tu máquina, compila rz_notebook una vez para cada una. Ambas compilaciones pueden comunicarse con el mismo servidor y compartir los mismos datos .rznb.
Regla simple:
rz_notebook por versión de Rizin en usoLas capturas de pantalla del proyecto están organizadas en docs/images/.
Figura 1. Vista de la página principal (con búsqueda por celda y ámbito, compatible con múltiples modos).
Figura 2. Página de configuración para la configuración del entorno, atajos de teclado y comportamiento del lado del servidor.
Figura 3. Autocompletado de comandos en la consola web, ayudando a descubrir y completar comandos de Rizin rápidamente.
Figura 4. Modal de búsqueda y ayuda de comandos integrado para explorar descripciones y argumentos de comandos.
Figura 5. Integración del plugin central de Rizin, permitiendo la interacción con el cuaderno directamente desde el shell de Rizin.
Figura 6. Vista de integración del plugin de Cutter mostrando la experiencia del cuaderno dentro de la interfaz de Cutter.
Figura 7. Vista adicional del flujo de trabajo del plugin de Cutter que demuestra los posibles usos del cuaderno.
go build -o rizin-notebook .
Incrusta la cadena de versión durante las compilaciones de lanzamiento:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Se abre en http://127.0.0.1:8000/ por defecto.
Banderas:
-bind 127.0.0.1:8000 dirección y puerto para escuchar
-root / prefijo de ruta de URL
-notebook /path/to/data directorio de datos (por defecto: ~/.rizin-notebook)
-debug-assets /path cargar plantillas desde el disco en lugar de incrustadas
-debug habilitar registros de solicitudes HTTP
Establece RIZIN_PATH para sobrescribir la ruta del binario de rizin utilizada para la ejecución del pipe.
Ver rizin-notebook-plugin/README.md.
Ver cutter-notebook-plugin/README.md.
Si Cutter incluye su propio Rizin incrustado, el plugin rz_notebook cargado por Cutter debe compilarse contra esa misma versión de Rizin incluida.
Cada página es un archivo .rznb en el directorio de datos. Es una base de datos SQLite que contiene:
El servidor mantiene un índice catalog.db para listar rápidamente todas las páginas.
En la primera ejecución, el servidor migra automáticamente cualquier página desde un formato monolítico antiguo notebook.db al diseño por página .rznb.
Todos los comandos del plugin NB utilizan la API protobuf (Content-Type: application/x-protobuf). El esquema está en proto/notebook.proto.
Una API JSON paralela en /api/v1/json/... es utilizada por el plugin de Cutter y la interfaz del navegador.