
Um bloco de notas para escrever anotações enquanto usa rizin!
Um caderno para análise binária com o rizin. Mantenha notas, comandos e scripts organizados por binário.
Requer rizin 0.7.0 ou superior.
Cada página do caderno está vinculada a um binário. Ela armazena o próprio binário, seu hash SHA-256 e uma lista de células:
As páginas são armazenadas como arquivos .rznb individuais (bancos de dados SQLite) em ~/.rizin-notebook/. Elas podem ser exportadas e importadas como arquivos autocontidos únicos.
rizin-notebook) - o aplicativo principal. Serve uma interface web, expõe uma API REST protobuf + JSON, armazena tudo em arquivos SQLite .rznb por página.NB ao rizin para que você possa interagir com o caderno a partir do shell do rizin.Os plugins são opcionais. O servidor Go funciona independentemente apenas com um navegador.
O servidor Go é independente de plataforma. Os plugins dependem da versão do Rizin contra a qual foram compilados.
Se o rizin independente e o Cutter usarem versões diferentes do Rizin na sua máquina, compile o rz_notebook uma vez para cada. Ambas as versões podem se comunicar com o mesmo servidor e compartilhar os mesmos dados .rznb.
Regra simples:
rz_notebook por versão do Rizin em usoAs capturas de tela do projeto estão organizadas em docs/images/.
Figura 1. Visão da página inicial (com pesquisa baseada em célula e escopo, suportando vários modos).
Figura 2. Página de configurações para definição do ambiente, atalhos de teclado e comportamento do lado do servidor.
Figura 3. Autocompletar de comandos no console web, ajudando a descobrir e completar comandos Rizin rapidamente.
Figura 4. Modal de ajuda e busca de comandos integrada para explorar descrições e argumentos de comandos.
Figura 5. Integração do plugin central Rizin, permitindo interação com o caderno diretamente do shell Rizin.
Figura 6. Visão da integração do plugin Cutter mostrando a experiência do caderno dentro da interface do Cutter.
Figura 7. Visão adicional do fluxo de trabalho do plugin Cutter demonstrando possíveis usos do caderno.
go build -o rizin-notebook .
Insira a string de versão durante compilações de lançamento:
go build -ldflags "-X main.NBVERSION=$(git rev-parse --short HEAD)" -o rizin-notebook .
./rizin-notebook
Abre em http://127.0.0.1:8000/ por padrão.
Flags:
-bind 127.0.0.1:8000 endereço e porta para escutar
-root / prefixo do caminho da URL
-notebook /path/to/data diretório de dados (padrão: ~/.rizin-notebook)
-debug-assets /path carregar templates do disco em vez de embutidos
-debug ativar logs de requisições HTTP
Defina RIZIN_PATH para substituir o caminho do binário rizin usado para execução do pipe.
Veja rizin-notebook-plugin/README.md.
Veja cutter-notebook-plugin/README.md.
Se o Cutter incluir seu próprio Rizin embutido, o plugin rz_notebook carregado pelo Cutter deve ser compilado contra essa mesma versão do Rizin incluída.
Cada página é um arquivo .rznb no diretório de dados. É um banco de dados SQLite contendo:
O servidor mantém um índice catalog.db para listagem rápida em todas as páginas.
Na primeira execução, o servidor migra automaticamente quaisquer páginas de um formato monolítico antigo notebook.db para o layout por página .rznb.
Todos os comandos do plugin NB usam a API protobuf (Content-Type: application/x-protobuf). O esquema está em proto/notebook.proto.
Uma API JSON paralela em /api/v1/json/... é usada pelo plugin do Cutter e pela interface do navegador.