radare2 - Man Page
Advanced command-line hexadecimal editor, disassembler and debugger
Examples (TL;DR)
Open a file in write mode without parsing the file format headers:
radare2 -nw path/to/binary
Debug a program:
radare2 -d path/to/binary
Run a script before entering the interactive CLI:
radare2 -i path/to/script.r2 path/to/binary
Display help text for any command in the interactive CLI:
> radare2_command?
Run a shell command from the interactive CLI:
> !shell_command
Dump raw bytes of current block to a file:
> pr > path/to/file.bin
Synopsis
Description
radare2 is a command-line hexadecimal editor.
"r2" is the alias program name for radare2.
This manpage is not updated yet. Feel free to contribute.
The options are:
- --
Open radare2 on an empty file
- -
Equivalent of 'r2 malloc://512'
- -0
Print \x00 after initialization and after every command executed
- -1
Redirect stderr to stdout
- -2
Close stderr before starting RCore
- -a arch
force asm.arch (x86, ppc, arm, mips, bf, java, ...)
- -A
run 'aaa' command before prompt or patch to analyze all referenced code. Use -AA to run aaaa
- -b bits
force asm.bits (16, 32, 64)
- -B baddr
Specify the base address to be used when loading a new binary. See 'e?bin.baddr'
- -c cmd
Execute the given command before giving prompt
- -d
Start in debugger mode
- -D dbg.backend
Enable debug mode. Set cfg.debug=true
- -e k=v
Set configuration eval variable key=value. For example -e scr.color=false. When -e is passed after -j, it will set the script source to run instead of setting eval vars.
- -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 -e flag after the -j.
- -i file
Run script file. After the file is loaded
- -I file
Run script file. Before the file is loaded
- -k kernel
Select kernel (asm.os) for syscall resolution
- -l plugfile
Load given plugin file
- -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/radare2rc and the scripts inside .../radare2rc.d/ directory.
- -NN
Same as -N but also disables the automatic loading of plugins on startup time
- -q
Quiet mode (no prompt) and quit after running the commands specified with -i or -c
Quit before showing the prompt. Right after all the -e -c and -i arguments are evaluated.
- -Q
Same as q, 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 (see doc/rapatch.md for more details)
- -r rarun2
Specify dbg.profile rarun2 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
Set bin.filter=false to load rbin info without filtering names
- -v
Show version information and exit (Use -qv to get just the version number)
- -V
Show radare2 library versions (prints JSON format if -j is used)
- -w
Open in write mode
- -h
Show help message
- -H
Show files and environment help
- -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
Visual
To enter visual mode use the 'V' command. Then press '?' for help
Debugger
In r2 the debugger commands are implemented under the 'd' command. Type 'd?' for help
Environment
R2_ARGS run radare2 with defined arguments in environment and ignore cli ones
R2_IGNVER load plugins ignoring the specified version. (be careful)
R2_DEBUG if defined, show error messages and crash signal
R2_DEBUG_ASSERT=1 set a breakpoint when hitting an assert
R2_MAGICPATH /Users/pancake/.local/share/radare2/share/radare2/4.5.0-git/magic
R2_NOPLUGINS do not load r2 shared plugins
R2_RCFILE ~/.radare2rc (user preferences, batch script)
R2_RDATAHOME /usr/local FILE 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>
Referenced By
esil(7), r2agent(1), r2pm(1), rabin2(1), radiff2(1), rafind2(1), ragg2(1), rahash2(1), rarun2(1), rasign2(1), rasm2(1), ravc2(1), rax2(1).