
rizin을 사용하면서 메모를 작성하는 노트!
리진을 이용한 바이너리 분석용 노트북입니다. 바이너리별로 노트, 명령어, 스크립트를 체계적으로 관리합니다.
rizin 0.7.0 이상이 필요합니다.
각 노트북 페이지는 하나의 바이너리에 연결됩니다. 바이너리 자체, SHA-256 해시, 그리고 셀(cell) 목록을 저장합니다:
페이지는 ~/.rizin-notebook/ 디렉토리에 개별 .rznb 파일(SQLite 데이터베이스)로 저장됩니다. 단일 독립 파일로 내보내거나 가져올 수 있습니다.
rizin-notebook) - 메인 애플리케이션. 웹 UI를 제공하고, protobuf + JSON REST API를 노출하며, 모든 것을 페이지별 .rznb SQLite 파일에 저장합니다.NB 명령어를 추가하여 rizin 셸에서 노트북과 상호작용할 수 있습니다.플러그인은 선택 사항입니다. Go 서버는 브라우저만으로 독립 실행됩니다.
Go 서버는 플랫폼 독립적입니다. 플러그인은 빌드 시 사용된 Rizin 버전에 의존합니다.
독립 실행형 rizin과 Cutter가 서로 다른 Rizin 버전을 포함하고 있다면, 각각에 대해 rz_notebook을 한 번씩 빌드하세요. 두 빌드 모두 동일한 서버와 통신하고 동일한 .rznb 데이터를 공유할 수 있습니다.
간단한 규칙:
rz_notebook 빌드프로젝트 스크린샷은 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 address and port to listen on
-root / URL path prefix
-notebook /path/to/data data directory (default: ~/.rizin-notebook)
-debug-assets /path load templates from disk instead of embedded
-debug enable HTTP request logs
파이프 실행에 사용되는 rizin 바이너리 경로를 재정의하려면 RIZIN_PATH를 설정하세요.
rizin-notebook-plugin/README.md를 참조하세요.
cutter-notebook-plugin/README.md를 참조하세요.
Cutter가 자체 내장 Rizin을 포함하는 경우, Cutter가 로드하는 rz_notebook 플러그인은 동일한 번들 Rizin 버전에 대해 빌드되어야 합니다.
각 페이지는 데이터 디렉토리에 있는 .rznb 파일입니다. SQLite 데이터베이스이며 다음을 포함합니다:
서버는 모든 페이지에 걸친 빠른 목록을 위해 catalog.db 인덱스를 유지합니다.
첫 실행 시 서버는 기존 단일 notebook.db 형식의 페이지를 자동으로 페이지별 .rznb 레이아웃으로 마이그레이션합니다.
모든 NB 플러그인 명령어는 protobuf API(Content-Type: application/x-protobuf)를 사용합니다. 스키마는 proto/notebook.proto에 있습니다.
Cutter 플러그인과 브라우저 UI는 /api/v1/json/...의 병렬 JSON API를 사용합니다.