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 Vala, Go, Python, Guile, Ruby, Perl, Lua, Java, JavaScript, sh, .. batch mode and native plugins with full internal API access native scripting based in mnemonic commands and macros

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



