
Rizin 및 Cutter를 사용하는 동안 메모를 작성하는 노트북입니다.
바이너리 분석을 위한 노트북입니다. rizin을 사용하여 각 바이너리별로 노트, 명령어, 스크립트를 정리합니다.
rizin 0.7.0 이상이 필요합니다.
각 노트북 페이지는 하나의 바이너리에 연결됩니다. 바이너리 자체, SHA-256 해시, 그리고 셀 목록을 저장합니다:
페이지는 ~/.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 수신 주소 및 포트
-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을 제공하는 경우, 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가 사용됩니다.