Radare2 Reference Card
Survival Guide
| Command |
Description |
| aa |
Auto analyze |
| Content Cell |
Content Cell |
| pdf@fcn(Tab) |
Disassemble function |
| f fcn(Tab) |
List functions |
| f str(Tab) |
List strings |
| fr [flagname] [newname] |
Rename flag |
| psz [offset] |
Print string |
| arf [flag] |
Find cross reference for a flag |
Flagspaces
| Command |
Description |
| fs |
Display flagspaces |
| fs * |
Select all flagspaces |
| fs [sections] |
Select one flagspace |
Flags
| Command |
Description |
| f |
List flags |
| fs * |
Select all flagspaces |
| fs [sections] |
Select one flagspace |
| fj |
Display flags in JSON |
| fl |
Show flag length |
| fx |
Show hexdump of flag |
| fC [name] [comment] |
Set flag comment |
| Command |
Description |
| ii |
Information on imports |
| iI |
Info on binary |
| ie |
Display entrypoint |
| iS |
Display sections |
| ir |
Display relocations |
Print string
| Command |
Description |
| psz [offset] |
Print zero terminated string |
| psb [offset] |
Print strings in current block |
| psx [offset] |
Show string with scaped chars |
| psp [offset] |
Print pascal string |
| psw [offset] |
Print wide string |
Visual mode
| Command |
Description |
| V |
Enter visual mode |
| p/P |
Rotate modes (hex, disasm, debug, words, buf) |
| c |
Toggle (c)ursor |
| q |
Back to Radare shell |
| hjkl |
Move around (or HJKL) (left-down-up-right) |
| Enter |
Follow address of jump/call |
| sS |
Step/step over |
| o |
Go/seek to given offset |
| . |
Seek to program counter |
| / |
In cursor mode, search in current block |
| :cmd |
Run radare command |
| ;[-]cmt |
Add/remove comment |
| /*+-[] |
Change block size, [] = resize hex.cols |
| >||< |
Seek aligned to block size |
| i/a/A |
(i)nsert hex, (a)ssemble code, visual (A)ssembler |
| b/B |
Toggle breakpoint / automatic block size |
| d[f?] |
Define function, data, code, .. |
| D |
Enter visual diff mode (set diff.from/to) |
| e |
Edit eval configuration variables |
| f/F |
Set/unset flag |
| gG |
Go seek to begin and end of file (0-$s) |
| mK/’K |
Mark/go to Key (any key) |
| M |
Walk the mounted filesystems |
| n/N |
Seek next/prev function/flag/hit (scr.nkey) |
| o |
Go/seek to given offset |
| C |
Toggle (C)olors |
| R |
Randomize color palette (ecr) |
| t |
Track flags (browse symbols, functions..) |
| T |
Browse anal info and comments |
| v |
Visual code analysis menu |
| V/W |
(V)iew graph (agv?), open (W)ebUI |
| uU |
Undo/redo seek |
| x |
Show xrefs to seek between them |
| yY |
Copy and paste selection |
| z |
Toggle zoom mode |
Searching
| Command |
Description |
| / foo\00 |
Search for string ’foo\0’ |
| /b |
Search backwards |
| // |
Repeat last search |
| /w foo |
Search for wide string ’f\0o\0o\0’ |
| /wi foo |
Search for wide string ignoring case |
| /! ff |
Search for first occurrence not matching |
| /i foo |
Search for string ’foo’ ignoring case |
| /e /E.F/i |
Match regular expression |
| /x ff0.23 |
Search for hex string |
| /x ff..33 |
Search for hex string ignoring some nibbles |
| /x ff43 ffd0 |
Search for hexpair with mask |
| /d 101112 |
Search for a deltified sequence of bytes |
| /!x 00 |
Inverse hexa search (find first byte != 0x00) |
| /c jmp [esp] |
Search for asm code (see search.asmstr) |
| /a jmp eax |
Assemble opcode and search its bytes |
| /A |
Search for AES expanded keys |
| /r sym.printf |
Analyze opcode reference an offset |
| /R |
Search for ROP gadgets |
| /P |
Show offset of previous instruction |
| /m magicfile |
Search for matching magic file |
| /p patternsize |
Search for pattern of given size |
| /z min max |
Search for strings of given size |
| /v[?248] num |
Look for a asm.bigendian 32bit value |
Saving
| Command |
Description |
| Po [file] |
Open project |
| Ps [file] |
Save project |
| Pi [file] |
Show project information |
Usable variables in expression
| Command |
Description |
| $$ |
Here (current virtual seek) |
| $o |
Here (current disk io offset) |
| $s |
File size |
| $b |
Block size |
| $w |
Get word size, 4 if asm.bits=32, 8 if 64 |
| $c,$r |
Get width and height of terminal |
| $S |
Section offset |
| $SS |
Section size |
| $j |
Jump address (jmp 0x10, jz 0x10 => 0x10) |
| $f |
Jump fail address (jz 0x10 => next instruction) |
| $I |
Number of instructions of current function |
| $F |
Current function size |
| $Jn |
Get nth jump of function |
| $Cn |
Get nth call of function |
| $Dn |
Get nth data reference in function |
| $Xn |
Get nth xref of function |
| $m |
Opcode memory reference (mov eax,[0x10] => 0x10) |
| $l |
Opcode length |
| $e |
1 if end of block, else 0 |
| $ev |
Get value of eval config variable |
| $? |
Last comparison value |
License
This chapter is based on the Radare 2 reference card by Thanat0s, which is under the GNU GPL. Original license is as follows:
This card may be freely distributed under the terms of the GNU
general public licence — Copyright c by Thanat0s - v0.1 -