RADARE2(1)
π radare2(1) β advanced command-line hexadecimal editor, disassembler and debugger π
okay so this is the radare2(1) manual page, bestie β manual name folded in near the top like a little name tag π«Ά.
πΈ NAME πΈ
radare2 β advanced command-line hexadecimal editor, disassembler and debugger. That's the whole mood, no cap. π
β¨ SYNOPSIS β¨
radare2 [-a arch] [-b bits] [-B baddr] [-c cmd] [-e k=v] [-i file]
[-I prefile] [-k kernel] [-m addr] [-p project] [-P patch]
[-r rarun2] [-R rr2rule] [-s addr] [-012AdDEjwntLquvVxX]
-|--|=|file
π DESCRIPTION π
okay so radare2 is an advanced command-line hex editor, disassembler, and debugger β the whole package. It's giving interactive reverse engineering, scripting, and automation capabilities for binary analysis and vulnerability research. iconic fr fr.
The alias r2 may be used as a shorthand for radare2. Slay. β¨
The options are:
--β Open radare2 on an empty file-β Equivalent ofr2 malloc://512-0β Print\x00after initialization and after every command executed-1β Redirect stderr to stdout-2β Close stderr before starting RCore-a archβ forceasm.arch(x86,ppc,arm,mips,bf,java, ...)-Aβ runaaacommand before prompt or patch to analyze all referenced code. Use-AAto runaaaa-b bitsβ forceasm.bits(16,32,64)-B baddrβ Specify the base address to be used when loading a new binary. Seee?bin.baddr-c cmdβ Execute the given command before giving prompt-dβ Start in debugger mode-D dbg.backendβ Enable debug mode. Setcfg.debug=true-e k=vβ Set configuration eval variablekey=value. For example-e scr.color=false. When-eis passed after-j, it will set the script source to run instead of setting eval vars.-Eβ Edit the user startup script using thecfg.editor(EDITORenv) of choice-fβBlocksize = file size-jβ Run QJS script if an argument is passed or enter the qjs shell if no file is specified. You can evaluate expressions when passing the-eflag after the-j.-i fileβ Run script, lang program or radare2 plugin file. After the file is loaded-I fileβ Run script, lang program or radare2 plugin file. Before the file is loaded-k kernelβ Select kernel (asm.os) for syscall resolution-Lβ List loaded IO plugins.-LLβ List loaded core plugins.-m addrβ map file at given address-Mβ Disable demangling-nβ Do not perform any analysis (r_bin). Just load the raw file-nnβ Only load the rbin structures (elf,mach0, ...)-Nβ Do not load user settings/projects from~/.radare2rc,~/.config/radare2/rcand the scripts inside~/.config/radare2/rc.d/directory.-NNβ Same as-Nbut also disables the automatic loading of plugins on startup time-qβ Quiet mode (no prompt) and quit after running the commands specified with-ior-c-qqβ Quit before showing the prompt. Right after all the-e-cand-iarguments are evaluated.-Qβ Same asq, but exiting without freeing RCore, this produces leaks at exit time, but saves some precious ms to run the testsuite in fast mode.-p prjβ Set project file-P fileβ Apply rapatch file and quit (seedoc/rapatch.mdfor more details)-r rarun2β Specifydbg.profilerarun2 profile to use when spawning a program for debugging-R rarun2-directiveβ Specify custom rarun2 directives without having to create a rarun2 profile-s addrβ Start seeking at this address-Sβ Enable sandboxed mode (same as-e cfg.sandbox=true)-tβ Get binary information and analyze binary in a background thread-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 radare2 library versions (prints JSON format if-jis used)-wβ Open in write mode-hβ Show help message-H [variable]β Show files and environment help, or print the selected variable-xβ Open the file map without executable permissions-Xβ Same as-e bin.usextr=false, do not use extract plugins, useful for dyldcache
π SHELL π
Type ? for help. That's it, that's the vibe. π
π VISUAL π
To enter visual mode use the V command. Then press ? for help. main character energy, honestly. β¨
π«Ά DEBUGGER π«Ά
In r2 the debugger commands are implemented under the d command. Type d? for help.
Useful debugger additions include:
dts+β Start recording reversible debugger session state.dtsc [label]β Create a checkpoint from the current live state. Checkpoints carry a stable id and may branch from the current checkpoint.dtsr idβ Restore a checkpoint by id and continue from that branch.dtsd idβ Delete a non-current leaf checkpoint.dtst dir/dtsf dirβ Save and load the current debug session, including checkpoint ids and parent links.dtsw id fd hex/dtswc id [fd / dtswj]β Queue replay bytes on a checkpoint file descriptor, clear queued bytes, and inspect replay state in JSON form.
π ENVIRONMENT π
R2_ARGSβ run radare2 with defined arguments in environment and ignore cli onesR2_IGNVERβ load plugins ignoring the specified version. (be careful)R2_DEBUGβ if defined, show error messages and crash signalR2_DEBUG_ASSERT=1β set a breakpoint when hitting an assertR2_MAGICPATHβ/Users/pancake/.local/share/radare2/share/radare2/4.5.0-git/magicR2_NOPLUGINSβ do not load r2 shared pluginsR2_PLUGINS_ORDERβ plugin load order: i=internal, e=env, h=home, s=system, c=config; default=icehs; ? prints helpR2_RCFILEβ~/.radare2rc(user preferences, batch script)R2_RDATAHOMEβ/usr/localFILE path to the current working file.
π SEE ALSO π
r2r(1), rahash2(1), rafind2(1), rabin2(1), radiff2(1), rasm2(1), rax2(1), ravc2(1), ragg2(1), rarun2(1)
π AUTHORS π
pancake <pancake@nopcode.org> β the icon. π
source/version: RADARE2(1) β’ dated: May 20, 2025 β’ mwah π
π¦ where this page comes from
- arch rolling: radare2 6.2.2-1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- opensuse-leap 16.0: radare2 6.2.2-bp160.1.1 Β· GPL-3.0-only AND LGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms