- Review elf format, calling conventions, ABI
- Learn about saving projects and put in ##Project Management
- Read about UPX binary compression
- Check reddit, discords for crackme communities
- Search this doc for "todo" and fix
- improve speed of
aaa
checks - any issues on the r2 repo
- improve r2 docs
- crackmes.one
- pwnable.kr
- https://github.com/radareorg/radare2/blob/master/doc/intro.md
- https://radare.gitbooks.io/radare2book/content/
Press V
to enter visual mode.
q
: quit visual mode
p
: next visual view
P
: previous view
:
: commands
<enter>
: follow call
u
: unfollow call
:
: comment on seeked line
Arrow keys scroll, pageup/pagedown scroll faster.
Instead of V
for visual view, press VV
.
Each block has a key combination at the top in square brackets, type that to jump to that block.
p
and P
switch views.
x
cross references the seeked address, good to e.g. jump back to the caller. It'll list index numbers for all cross references, enter one to go to it.
INstead of V
, press !
- Can click with mouse
<tab>
: switch between panest
: control tabs (new, switch, etc)"
: modify active pane-
: horizontal split current pane|
: probably vertical split? todo check thisw
: enter window mode, for resizing/moving panelsX
: close active pane
aaa
: analyze (open withr2 -A
or-AA
to avoid the need for this)pdf
: print functions
: seek to address (need to hit enter again for screen to update)axt
: cross reference all callerspf S @ rbp-8
: print string pointed to by rbp-8afvd
: print local variablesafvd [var name]
to print a specific variable
- Use
~
to format output of commands- Postfix a command with
~..
to pipe the output to less. - Pipe the output of a command through grep, e.g. grep for
main
:afl ~main
- Get help:
~?
- Postfix a command with
- Search with
/
/ad/ cmp
: find allcmp
instructions- Get help:
/?
a
: analyzef
: functionsl
: listl
: long (include titles for columns)
v
variablesd
: display
x
: cross referencest
: tof
: from
d
: debugb
: breakpointc
: continueo
: restarts
: stepf
: until end of frame
i
: informationi
: importss
: symbolsz
: strings in .dataz
: all strings
E
: exports (if the thing is used as a library)I
: binary info (alsorabin2
)S
: sections
p
: printf
: format.
: choose a structure to print as, e.g.pf.elf_header @ elf_header
- need
-nn
to load structures (todo: is there a way to load that apart from flags)
- need
r2 -w target
from visual mode:
A
enters write mode on the current line, then you type your assembly.
Then hit enter.
Type w?
to get help on other write commands.
r2 -d target
Hit p
twice in visual mode to get to the debugging view.
Change the stack size with :e stack.size = 256
(it's by bytes)
<F7>
: step into
<F8>
: step over
<F9>
: continue
.
: return seek to $rip
If you want your comments, e.g. to persist you'll need to save the project.
Todo
rabin2
: binary information
rafind2
: find patterns in binary