Slides
Slides
1
anton kochkov
2
generality on radare2 framework
∙ r1 2006, r2 2009
∙ Multi-(OSes|Archs|Bindings|FileFormats|...)
∙ 10 tools based on the framework
∙ Around 111 contributors from various fields
∙ GSOC + RSOC
∙ CLI/VisualMode/GUI/WebGUI
∙ around 350K LOC
3
Installation !
4
installation
5
utilities
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
7
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
8
utilities: rax2
$ rax2 10
0xa
0x21 65 0x5
$ rax2 -s 4142434445
ABCDE
$ rax2 0x5*101b+5
30 9
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
10
utilities: rabin2
$ rabin2 -e
Entrypoints
$ rabin2 -i
Shows imports
$ rabin2 -zz
Shows strings
$ rabin2 -g
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
12
utilities: rasm2
Assemble
$ rasm2 -d 9090
Disassemble
$ rasm2 -L
Output in C format 13
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
14
utilities: radiff2
Code diffing
/bin/true /bin/false
16
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
17
utilities: rafind2
18
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
19
utilities: rahash2
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
21
radare2 — command line
1 command <—> 1 reverse-engineering’notion
23
the # command — hashing command
24
the i command — information command
25
radare2 — ’major’ command example: pf
Quick Demo
26
radare2 — cli main commands
27
radare2 — visual mode
radare2 — visual mode main commands
1. V? : Visual help
2. p/P : rotate print modes
3. move using arrows/hjkl
4. o : seek to
5. e : r2configurator
6. v : Function list
7. _ : HUD
8. V : ASCII Graph
0-9 : Jump to function
9. u : Go back
29
radare2 — webui
radare2 — webui
r2 -A -c=H filename
31
radare2 — debugger
radare2 — debugger
1. radare2 -d
2. Quickly switch to Visual debugger mode: Vpp
3. OllyDBG/IDApro shortcuts friendly
33
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
34
rarun2
35
utilities
∙ rax2
∙ rabin2
∙ rasm2
∙ radiff2
∙ rafind2
∙ rahash2
∙ radare2
∙ rarun2
∙ ragg2/ragg2-cc
36
ragg2/ragg2-cc
37
debugging
38
native debug
r2 -d /bin/ls
39
gdb protocol
40
gdb protocol + wine
41
windbg
bcdedit /debug on
42
debugging omap bootrom
43
gdb protocol + wine
44
scripting capabilities
Radare2 Bindings —
R2Pipe —
Demo time !
45
now your turn!
46
documentation
∙ Website: [Link]
∙ Blog: [Link]
∙ Book: [Link]
47
exploitation (jvoisin work :-) )
49
stack
...
...
...
...
...
...
50
stack smashing
51
stack smashing
51
pwn1
pwn1
53
hu-ho.
54
de bruijn patterns
55
exploit!
∙ No ALSR
∙ No NX
∙ No Canary
56
generate shellcode
57
your turn!
58
show me yours, i’ll show you mine
59
malware analysis
other r2 commands i use frequently at work
1. #?
2. ?d, i?
3. Visual mode and associated (VVV, Vv, ;, ...)
4. Analysis command (axt, agf, ...)
5. /m?, /C?, pf, px?, p6d, p=
6. yara, zF
7. pr, wt
8. basic zsh/bash scripting, r2-pipe
61
firmware analysis
uefi analysis
2 uefitool.
63
old legacy bios analysis
3 bios-extract.
64
documentation
∙ Website: [Link]
∙ Blog: [Link]
∙ Book: [Link]
65
references