r2 is a rewrite from scratch of radare in order to provide a set of libraries and tools to work with binary files
This is the rewrite of radare (1.x branch) to provide a framework with a set of libraries and programs to work with binary data.
Radare project started as a forensics tool, an scriptable commandline hexadecimal editor able to open disk files, but later support for analyzing binaries, disassembling code, debugging programs, attaching to remote gdb servers, ..
radare2 is portable.
Architectures:
6502, 8051, arm, arc, avr, bf, tms320 (c54x, c55x, c55+), gameboy csr, dcpu16, dalvik, i8080, mips, m68k, mips, msil, snes, nios II, sh, sparc, rar, powerpc, i386, x86-64, H8/300, malbolge, T8200
File Formats:
bios, dex, elf, elf64, filesystem, java, fatmach0, mach0, mach0-64, MZ, PE, PE+, TE, COFF, plan9, bios, dyldcache, Gameboy and Nintendo DS ROMs
Operating Systems:
Android, GNU/Linux, [Net|Free|Open]BSD, iOS, OSX, QNX, w32, w64, Solaris, Haiku, FirefoxOS
Bindings:
Vala/Genie, Python (2, 3), NodeJS, LUA, Go, Perl, Guile, php5, newlisp, Ruby, Java, OCAM
Features:
- Multi-architecture and multi-platform
- GNU/Linux, Android, *BSD, OSX, iPhoneOS, Windows{32,64} and Solaris
- i8080, 8051, x86{16,32,64}, avr, arc{4,compact}, arm{thumb,neon,aarch64}, c55x+, dalvik, ebc, gb, java, sparc, mips, nios2, powerpc, whitespace, brainfuck, malbolge, z80, psosvm, m68k, msil, sh, snes, gb, dcpu16, csr, arc
- pe{32,64}, te, [fat]mach0{32,64}, elf{32,64}, bios/uefi, dex and java classes
- Highly scriptable
- Hexadecimal editor
- 64bit offset support with virtual addressing and section maps
- Assemble and disassemble from/to many architectures
- colorizes opcodes, bytes and debug register changes
- print data in various formats (int, float, disasm, timestamp, ..)
- search multiple patterns or keywords with binary mask support
- checksumming and data analysis of byte blocks
- IO is wrapped
- support Files, disks, processes and streams
- virtual addressing with sections and multiple file mapping
- handles gdb:// and rap:// remote protocols
- Filesystems support
- allows to mount ext2, vfat, ntfs, and many others
- support partition types (gpt, msdos, ..)
- Debugger support
- gdb remote and brainfuck debugger support
- software and hardware breakpoints
- tracing and logging facilities
- Diffing between two functions or binaries
- graphviz friendly code analysis graphs
- colorize nodes and edges
- Code analysis at opcode, basicblock, function levels
- embedded simple virtual machine to emulate code
- keep track of code and data references
- function calls and syscall decompilation
- function description, comments and library signatures