Building a Concrete Alternative to Ida Radare2 to the Rescue!

Building a Concrete Alternative to Ida Radare2 to the Rescue!

building a concrete alternative to ida Radare2 to the rescue! Jeffrey (crowell) Crowell – Julien (jvoisin) Voisin June 20, 2015 REcon 2015 – Montreal we’re sorry 1 who are we? crowell jvoisin ∙ Work at Google ∙ Soon graduated ∙ raxcity.com ∙ <redacted> ∙ Shellphish ∙ dustri.org ∙ Boston Key Party ∙ Knows some english 2 toolbag Professional Amateur ∙ IDA Pro ∙ IDA Pro ∙ ImmunityDBG ∙ WineDBG ∙ WinDBG ∙ Hopper ∙ ∙ OllyDBG 3 toolbag Professional Amateur ∙ IDA Pro ($5000) ∙ IDA Pro (pirated) ∙ ImmunityDBG ∙ WineDBG (pirated Windows) ∙ WinDBG ∙ Hopper (probably not) ∙ ∙ OllyDBG (not maintained) 3 ∙ First DataRescue, then Hex-Rays ∙ Closed-source and expensive ∙ Lots of architectures are supported ∙ Decompilation! ∙ Awesome piece of software ida pro ∙ Created by Ilfak Guilfanov 4 ∙ Closed-source and expensive ∙ Lots of architectures are supported ∙ Decompilation! ∙ Awesome piece of software ida pro ∙ Created by Ilfak Guilfanov ∙ First DataRescue, then Hex-Rays 4 ∙ Lots of architectures are supported ∙ Decompilation! ∙ Awesome piece of software ida pro ∙ Created by Ilfak Guilfanov ∙ First DataRescue, then Hex-Rays ∙ Closed-source and expensive 4 ∙ Decompilation! ∙ Awesome piece of software ida pro ∙ Created by Ilfak Guilfanov ∙ First DataRescue, then Hex-Rays ∙ Closed-source and expensive ∙ Lots of architectures are supported 4 ∙ Awesome piece of software ida pro ∙ Created by Ilfak Guilfanov ∙ First DataRescue, then Hex-Rays ∙ Closed-source and expensive ∙ Lots of architectures are supported ∙ Decompilation! 4 ida pro ∙ Created by Ilfak Guilfanov ∙ First DataRescue, then Hex-Rays ∙ Closed-source and expensive ∙ Lots of architectures are supported ∙ Decompilation! ∙ Awesome piece of software 4 radare2, cet inconnu ∙ forensics tool ∙ radare2 in 2009 ∙ written in pure C ∙ 350k LoC under LGPL ∙ multi-purpose suite of tools history ∙ radare in 2006 6 ∙ radare2 in 2009 ∙ written in pure C ∙ 350k LoC under LGPL ∙ multi-purpose suite of tools history ∙ radare in 2006 ∙ forensics tool 6 ∙ written in pure C ∙ 350k LoC under LGPL ∙ multi-purpose suite of tools history ∙ radare in 2006 ∙ forensics tool ∙ radare2 in 2009 6 ∙ 350k LoC under LGPL ∙ multi-purpose suite of tools history ∙ radare in 2006 ∙ forensics tool ∙ radare2 in 2009 ∙ written in pure C 6 ∙ multi-purpose suite of tools history ∙ radare in 2006 ∙ forensics tool ∙ radare2 in 2009 ∙ written in pure C ∙ 350k LoC under LGPL 6 history ∙ radare in 2006 ∙ forensics tool ∙ radare2 in 2009 ∙ written in pure C ∙ 350k LoC under LGPL ∙ multi-purpose suite of tools 6 ∙ install from source though ;-) ∙ more than 50 contributors for the latest release ∙ RSoC (+GSoC) history ∙ likely packaged in your distribution 7 ∙ more than 50 contributors for the latest release ∙ RSoC (+GSoC) history ∙ likely packaged in your distribution ∙ install from source though ;-) 7 ∙ RSoC (+GSoC) history ∙ likely packaged in your distribution ∙ install from source though ;-) ∙ more than 50 contributors for the latest release 7 history ∙ likely packaged in your distribution ∙ install from source though ;-) ∙ more than 50 contributors for the latest release ∙ RSoC (+GSoC) 7 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Compile programs into tiny binaries for x86-32/64 and arm. 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Binary diffing 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Binary program info extractor (think readelf) 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Search for byte patterns in files 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Block based hashing utility 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Run programs in exotic environments 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Assembler/disassembler 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Base converter 8 r2tools ∙ ragg2 ∙ rafind2 ∙ rasm2 ∙ radiff2 ∙ rahash2 ∙ rax2 ∙ rabin2 ∙ rarun2 ∙ radare2 Combine everything together 8 platforms Runs on Handles ∙ Windows ∙ MZ/PE+/PE/COFF ∙ GNU/Linux ∙ ELF, ELF64 ∙ *BSD ∙ Fatmach0/Mach0 ∙ OSX ∙ DEX/JAVA ∙ Android and iOS ∙ BIOS/TE ∙ Smartwatch ∙ GB/GBA/DS ∙ Web browser ∙ XBOX ∙ QNX ∙ Plan9 ∙ … ∙ BIOS 9 architectures ∙ 8051 ∙ brainfuck ∙ dcpu16 ∙ arc ∙ cr16 ∙ ebc ∙ arm ∙ csr ∙ gb ∙ avr ∙ dalvik ∙ h8300 10 architectures ∙ i4004 ∙ m68k ∙ msp430 ∙ i8080 ∙ malbolge ∙ nios2 ∙ java ∙ mips ∙ powerpc ∙ LH5801 ∙ msil ∙ rar 10 architectures ∙ ART ∙ tms320 ∙ z80 ∙ sh ∙ v850 ∙ propeller ∙ sparc ∙ whitespace ∙ snes ∙ spc700 ∙ x86 ∙ psosvm ∙ sysz ∙ xcore ∙ 6502 10 r2 internals r2 is a library ∙ At it’s heart, a library. ∙ Swig/Valabind ∙ Build your own tools on top of radare2 12 r2 is a library, with r2pipe included Bindings are boring, let’s call r2 instead! 13 r2 is pluggable 3rd party (or 1st party) plugins ∙ r_asm, assembler and disassembler ∙ r_anal, code analysis (opcode, type, esil) ∙ r_reg, registers ∙ r_syscall, system calls ∙ r_debug, debugger ∙ r_io, io layer ∙ r_search, search engine ∙ … 14 feature comparison ida has a book, r2 is self-documented (and also has a book too) ∙ R2 is like vim ∙ Combine intuitives commands ∙ Just append ? everywhere 16 ida has plugins, r2 has more bindings ∙ Python ∙ Ruby ∙ NodeJS ∙ Go ∙ C ∙ Rust ∙ Lua ∙ Perl ∙ Lisp ∙ OCaml ∙ Vala ∙ … 17 ida has some graphs, r2 does too (but in ascii) ∙ Minimap ∙ Debugger-compliant ∙ Interactive 18 ida is clever but also interactive, so is r2 ∙ name functions ∙ mark flags ∙ define code/data ∙ leave comments ∙ name stack variables ∙ mark structures ∙ use types ∙ define/modify functions 19 ida has a nice gui, so does, well, err, mh, … 20 actually… It’s not all that scary! ∙ Visual Mode - friendly enough? ∙ Familiar vim keybindings. ∙ Web UI - The future of collaborative reversing! ∙ Communicate over r2pipe. 21 ida has an old-school tui mode, r2 has a better one. ∙ Ncurses-like ∙ Static ∙ Dynamic ∙ Analysis ∙ Try it, really. 22 ida has no web-ui, r2 does. 23 ida has a debugger, so does r2 ∙ Classic features ∙ Visual mode too ∙ Several backends ∙ Tracing ∙ Remote 24 ida has kick-ass analysis, r2 has some too ∙ Functions detection ∙ Local var detection ∙ FLIRT integration ∙ zignatures ∙ (X)REF ∙ DWARF and PDB 25 ida some internal il, r2 has an open one ∙ ESIL ∙ RPN-ish ∙ Documented ∙ Emulation ∙ Decompilation ∙ Analysis 26 ida has plugins for pwnage, r2 put this in core ∙ Regexp ROP hunter ∙ Mitigations detection ∙ Emulation ∙ Patterns ∙ Environment control 27 ida has plugins for bindiffing, r2 put this in core 28 summary and now? ∙ GSoC ∙ Stabilization ∙ A fresh release ∙ Second edition of our RSoC ∙ ~1000 LoC modified per week 30 current drawbacks ∙ Super-steep learning curve ∙ A lot of features ∙ Fast-moving target ∙ IDA is friendlier 31 current ĤįşįĹņƀŹ ∙ Free-software ∙ Exotic arch support ∙ Active development ∙ A lot of features ∙ More and more users 32 We do! Do you? who uses r2 currently? ∙ Some top-notch ctf teams ∙ Some popular RE projects ∙ Shellphish ∙ Coreboot ∙ Dragon Sector ∙ Magic lantern ∙ … ∙ … ∙ Anti-malware companies ∙ Cool wargames ∙ AlienVault ∙ io from smashthestack ∙ IOActive ∙ OverTheWire ∙ … ∙ … 33 who uses r2 currently? ∙ Some top-notch ctf teams ∙ Some popular RE projects ∙ Shellphish ∙ Coreboot ∙ Dragon Sector ∙ Magic lantern ∙ … ∙ … ∙ Anti-malware companies ∙ Cool wargames ∙ AlienVault ∙ io from smashthestack ∙ IOActive ∙ OverTheWire ∙ … ∙ … We do! Do you? 33 and tomorrow? ∙ Complete-emulation ∙ Decompilation ∙ A complete GUI ∙ What do you want? 34 conclusion Question IDA supremacy1. Monoculture is bad. 1And don’t pirate it! 35 conclusion Radare2 is nice. You should use it.1 1Or at least try it 35 resources ∙ TV channel - http://radare.tv/ ∙ Book - http://maijin.gitbooks.io/radare2book/content/ ∙ Blog - http://radare.today/ ∙ Homepage - http://rada.re/ ∙ Source code - http://github.com/radare/radare2/ ∙ IRC channel - irc://irc.freenode.net/radare Come talk to us! 36 Questions? 37.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    64 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us