RIZIN(1)
β¨ rizin(1) β Advanced commandline hexadecimal editor, disassembler and debugger β¨
πΈ NAME πΈ
Bestie, meet rizin: the advanced commandline hexadecimal editor, disassembler and debugger. This is the RIZIN(1) manual, and weβre about to make it make sense. π
β¨ SYNOPSIS β¨
rizin [-ACdfLMnNqStuvwzX] [-P patch] [-p prj] [-a arch] [-b bits]
[-i file] [-s addr ] [-B baddr] [-m maddr] [-c cmd] [-e k=v]
file|pid|-|--|=
π DESCRIPTION π
rizin is a command-line reverse engineering framework, and its whole main character energy is analyzing and disassembling binary files. It gives you tools and features for analyzing and understanding the structure, behavior, and logic of executable files. No cap. π₯
The options are:
π OPTIONS π
Tiny heads-up before the list, bestie: the synopsis has -P patch and an uppercase S chilling inside the flag cluster, but the original options list doesnβt give them separate descriptions here β so Iβm keeping them visible up top and not inventing extra tea. π«Ά
--β run rizin without opening any file=β equivalent ofrizin malloc://512-β read file from stdin-=β performR=!command to run all commands remotely-0β print\x00after initialization and after every command executed-1β redirect stderr to stdout-2β close stderr file descriptor (silent warning messages)-a [arch]β set the assembly architecture (x86,ppc,arm,mips,bf,java, ...)-Aβ runaaacommand before prompt or patch to analyze all referenced code-b [bits]β set the assembly bitness (16,32,64)-B [baddr]β set the base address for Position-Independent Executables (PIE)-c 'cmd..'β execute the specified Rizin command-Cβ specify a file in the format"host:port"to run Rizin remotely through HTTP-dβ debug the executablefileor running processpid-D [backend]β enable debug mode, setting the configuration variablecfg.debug=true-e k=vβ evaluate the specified configuration variable-fβ set block size to be equal to file size-F [binplugin]β force the use of a specific rbin plugin-h,-hhβ show help messages, with-hhshowing detailed help-Hβ print information about the installation paths and configuration settings of Rizin. This option is useful for obtaining details about the installation location, directories, and various components of Rizin-i [file]β run the commands from the script file-I [file]β run script file. Before the file is loaded-k [OS/kern]β set the assembly operating system-l [lib]β load the specified plugin file-Lβ list supported IO plugins-m [addr]β map file at given address-Mβ disable demangling-n,-nnβ control loading of RzBin info, with-nnonly loading binary structures-Nβ disable user settings/projects from~/.rizinrc,~/.config/rizin/rizinrcand the scripts inside.../rizinrc.d/directory-NNβ disable loading any scripts or plugins-qβ quiet mode, suppresses prompt and quits after script execution-qqβ quit before showing the prompt. Right after all the-e-cand-iarguments are evaluated-Qβ same asq, but exiting without freeingRzCore, this produces leaks at exit time, but saves some precious ms to run the testsuite in fast mode-p [prj]β set project file-r [rz-run]β specifydbg.profilerz-run profile to use when spawning a program for debugging-R [rule]β specify custom rz-run directives without having to create a rz-run profile-s [addr]β start seeking at this address-Tβ avoid computing the file hashes-uβ setbin.filter=falseto load rbin info without filtering names-vβ show version information and exit (use-qvto get just the version number)-Vβ show rizin library versions-wβ open in write mode-xβ open the file without the execute flag-Xβ same as-e bin.usextr=false, do not use extract plugins, useful for dyldcache-z,-zzβ do not load strings or load them even in raw
π¦ ENVIRONMENT π¦
Environment variables are giving βsecret little config besties,β so hereβs every single one from the page:
ANSICONβ ansiconβsW&Hof the buffer andw&hof the window in the form of:"WxH (wxh)"DEBUGINFOD_URLSβe bin.dbginfo.debuginfod_urls- use alternative debuginfod serverCOLUMNSβ terminal columns to useRZ_ABORTLEVELβ target log level/severity when to abort (0:DEBUG,1:VERBOSE,2:INFO,3:WARN,4:ERROR,5:FATAL)RZ_CURLβ whether to use curl (for SSL support)RZ_DEBUG_ASSERTβ set a breakpoint when hitting an assertRZ_DEBUG_TOOLβ debug tool to use when showing error messages and crash signalRZ_DYLDCACHE_FILTERβ dyld cache filter (MacOS dynamic libraries location(s) at runtime)RZ_HTTP_AUTHFILEβ HTTP Authentification user fileRZ_LOGCOLORSβ should the log output use colors (TODO)RZ_LOGFILEβ logging output filename/pathRZ_LOGLEVELβ target log level/severity (0:DEBUG,1:VERBOSE,2:INFO,3:WARN,4:ERROR,5:FATAL)RZ_LOGSHOWSOURCESβ should the log output contain src info (filename:lineno)RZ_PIPE_INβ rzpipe cmd input (file descriptor)RZ_PIPE_OUTβ rzpipe cmd output (file descriptor)RZ_PREFIXβ default prefix rizin was compiled forRZ_RCFILEβ user config fileSFLIBPATHβ SFLib syscall library path
π EXAMPLE π
Start rizin in analysis mode (-A) on the /bin/ls executable:
rizin -A /bin/ls
Open the file /bin/ls in write mode, allowing you to make changes to the binary:
rizin -w /bin/ls
Start rizinβs debugger (-d) on /bin/ls and passes arguments "-l" and "/tmp" to the program for debugging:
rizin -d /bin/ls -l /tmp
π₯ SEE ALSO π₯
rz-test(1), rz-hash(1), rz-find(1), rz-bin(1), rz-diff(1), rz-asm(1), rz-ax(1), rz-gg(1), rz-run(1)
π AUTHORS π
pancake <pancake@nopcode.org>byteninjaa0
π Thatβs the whole page, bestie β dated Aug 25, 2023 and filed under RIZIN(1). Go reverse-engineer something iconic, periodt. π
π¦ where this page comes from
- arch rolling: rizin 0.8.2-2 Β· Apache-2.0 AND BSD-2-Clause AND BSD-3-Clause AND CC-PDDC AND CC0-1.0 AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND GPL-3.0-or-later AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND MIT
- nixos 26.05: rizin 0.8.2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms