
Блокнот для записи заметок при использовании Rizin & Cutter!
Блокнот для бинарного анализа с rizin. Храните заметки, команды и скрипты, организованные по каждому бинарному файлу.
Требуется rizin версии 0.7.0 или новее.
Каждая страница блокнота привязана к одному бинарному файлу. Она хранит сам бинарный файл, его SHA-256 хэш и список ячеек:
Страницы хранятся как отдельные файлы .rznb (базы данных SQLite) в ~/.rizin-notebook/.
Их можно экспортировать и импортировать как отдельные самодостаточные файлы.
rizin-notebook) — основное приложение. Предоставляет веб-интерфейс, экспонирует protobuf + JSON REST API, хранит всё в отдельных для каждой страницы файлах .rznb SQLite.NB в rizin, позволяя взаимодействовать с блокнотом из оболочки rizin.Плагины необязательны. Go сервер работает автономно, достаточно браузера.
Go сервер не зависит от платформы. Плагины зависят от версии Rizin, для которой они собраны.
Если отдельный rizin и Cutter поставляются с разными версиями Rizin на вашей машине, соберите rz_notebook отдельно для каждой. Обе сборки могут общаться с одним и тем же сервером и использовать одни и те же данные .rznb.
Простое правило:
rz_notebook на используемую версию RizinСкриншоты проекта организованы в docs/images/.
Рисунок 1. Вид главной страницы (с поиском по ячейкам и областям, поддержка нескольких режимов).
Рисунок 2. Страница настроек для конфигурации окружения, сочетаний клавиш и поведения сервера.
Рисунок 3. Автодополнение команд в веб-консоли, помогающее быстро находить и завершать команды Rizin.
Рисунок 4. Встроенный поиск команд и модальное окно справки для просмотра описаний и аргументов команд.
Рисунок 5. Интеграция плагина ядра Rizin, позволяющая взаимодействовать с блокнотом непосредственно из оболочки Rizin.
Рисунок 6. Вид интеграции плагина Cutter, показывающий работу с блокнотом внутри интерфейса Cutter.
Рисунок 7. Дополнительный вид рабочего процесса плагина Cutter, демонстрирующий возможные варианты использования блокнота.
go build -o rizin-notebook .
Встраивание строки версии в релизные сборки:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
По умолчанию открывается по адресу http://127.0.0.1:8000/.
Флаги:
-bind 127.0.0.1:8000 адрес и порт для прослушивания
-root / префикс пути URL
-notebook /path/to/data каталог данных (по умолчанию: ~/.rizin-notebook)
-debug-assets /path загружать шаблоны с диска вместо встроенных
-debug включить журнал HTTP-запросов
Установите RIZIN_PATH, чтобы переопределить путь к бинарному файлу rizin, используемому для выполнения через канал.
См. rizin-notebook-plugin/README.md.
См. cutter-notebook-plugin/README.md.
Если Cutter поставляется со своим встроенным Rizin, плагин rz_notebook, загружаемый Cutter, должен быть собран для той же версии Rizin.
Каждая страница представляет собой файл .rznb в каталоге данных. Это база данных SQLite, содержащая:
Сервер поддерживает индекс catalog.db для быстрого списка всех страниц.
При первом запуске сервер автоматически переносит все страницы из старого монолитного формата notebook.db в структуру с отдельными файлами .rznb.
Все команды плагина NB используют protobuf API (Content-Type: application/x-protobuf). Схема находится в proto/notebook.proto.
Параллельный JSON API по адресу /api/v1/json/... используется плагином Cutter и браузерным интерфейсом.