load without any analysis (file header at offset 0x0): r2 -n /path/to/file
- analyze all:
aa - show sections:
iS - list functions:
afl - list imports:
ii - list entrypoints:
ie - seek to function:
s sym.main
- open project:
Po <name> - save project:
Ps <name> - edit project notes:
Pn -
- show basic block disassembly:
pdb - show function disassembly:
pdf - show function arguments:
afa - show function variables:
afv - rename function variable:
afvn - set function variable type:
afvt - add/analyze function:
af
by default, these get displayed in disassembly listings to the right of a line. disable them in V visual mode using ' (single quote).
multiline comments are not rendered handled well. they don't look pretty.
- add comment (using editor):
CC!- note: multiline comments are not formatted nicely
- append comment:
CC <text> - overwrite comment:
CCu <text> - show comment:
CC. - show comment in this function:
CCf
- enter visual mode:
V - select function, variable, xref:
v - quick command/seek:
_ <search string> - custom quick command list:
??- you can update the list of commands shown here by changing
$R2HOME/hud. - ref: http://radare.today/posts/visual-mode/
- you can update the list of commands shown here by changing
- show cursor:
c - set function name:
d - add comment:
; - remove comment:
;-
"flag" means give something a type. like function or symbol.
graph mode is not visual mode!
-
enter graph modes:
VV -
cycle types of graphs:
- forward:
p - backwards:
P
- forward:
-
types of graphs:
- graph view
- graph view + opcode bytes
- esil
- esil + comments
- overview
-
seek to function:
g<identifier> -
undo seek:
u -
show comments:
' -
add comment:
/ -
add comment (complex):
:CC! -
select bb:
??? -
seek to next bb:
tab -
seek to previous bb:
TAB -
if bb has conditional branch:
- seek to True target:
t - seek to False target:
f
- seek to True target:
recommended contents of ~/.radare2rc:
# Show comments at right of disassembly if they fit in screen
e asm.cmtright=true
# Shows pseudocode in disassembly. Eg mov eax, str.ok = > eax = str.ok
e asm.pseudo = true
# Solarized theme
eco solarized
# Use UTF-8 to show cool arrows that do not look like crap :)
e scr.utf8 = true