
Блокнот для записи заметок при использовании rizin!
Блокнот для бинарного анализа с помощью 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 и браузерным интерфейсом.