Awesome
Workshop2015
TOC
Part 0. Intro to the radare world (45 min + 15 min practice)
0.0 - Generality on radare2 framework 1.1 - Utility toolsuit 2.1 - Radare2 - Generalities 2.2 - Radare2 - Printing 2.3 - Radare2 - Info Commands 2.4 - Radare2 - Search 2.5 - Analysis 2.6 - Visual Mode(s) 2.7 - Student Practices - IOLI Set - Questions/Answers
Part I. Static analysis (1 hour 30 minutes)
Chapter 1. Malware (45 minutes)
1.1 Windows malware example 1.2 Linux malware example
Chapter 2. Firmware (45 minutes)
2.1. General MIPS router firmware unpacking (15 minutes) Showing low-hanging vulnerabilities in a classic SOHO router.
2.2 General ARM firmware analysis - bootloaders and android executables (15 minutes)
- Texas Instruments bootrom analysis
- Qualcomm TrustZone analysis
- One of Android executables
2.3 HDD firmware analysis (15 minutes)
- Seagate firmware unpacking and disassembling
Chapter 3. Practice (30 minutes)
Part II Debugging - (40 minutes)
Chapter 1. General techniques (30 minutes)
1.1 gdb (10 minutes) Since the current native debugger is not perfect (it will be the focus for the next release), Radare2 can use gdb as a backend to debug processes.
1.2 native (10 minutes) We'll show basic on-host debugging case, when you are brave enough to debug executable (or even malware) directly on your machine. Also:
- rarun2 - setup execution environment for a program (chroot, parameters, env, etc.)
- remote r2 debugging r2 -c=h && r2 -C http://.../cmd/
1.3 WinDbg and PDB (10 minutes) Essential part for the windows debuggind is loading PDB files, especially for Windows drivers.
Chapter 2. Firmware (10 minutes)
2.1 qemu (10 minutes) Using embedded gdbserver to debug x86 bootloader/bios/uefi, and arm bootloader (see Part II, 2.2 section)
Part III Scripting (1 hour)
Chapter 1. Radare2 script (15 minutes)
Basic scripting, pipelining radare2 commands, without any external plugins. Using python plugins, high-level analysis using python bindings
Chapter 2. Scripting with r2pipe (30 minutes)
Using r2pipe for scripting with python, javascript.
Chapter 3. Python bindings (15 minutes)
Using 'classic' and 'ctypes' python bindings for the radare2 library
Part IV ESIL (1 hour)
ESIL is an Evaluateable String Intermediate Language
Chapter 1. Small ESIL introduction
ESIL syntax, opcodes, sources of the ESIL analysis
Chapter 2. ESIL emulation
Using ESIL for the emulation, without qemu/bochs/vbox needed
Chapter 3. ESIL to REIL conversion
To be able to use already existing tools based on REIL
THE END