radare
Radare2 reverse engineering framework and toolset
The radare project started in February of 2006 aiming to provide a free and simple command line interface for a hexadecimal editor supporting 64 bit offsets to search and recover data from hard-disks.
Since then, the project has grown, and its aim has changed to provide a complete framework for analyzing binaries with some basic *NIX concepts in mind, like everything is a file, small programs that interact with each other using stdin/out, and keep it simple.
Radare2 is a complete LGPL3 rewrite of the original project, which removes design issues of the first iteration, and makes it more modular and easier to script and maintain. It features a testsuite that aims to cover as many cases as possible in order to catch regressions.
Radare2 is composed of a hexadecimal editor at its core, with support for several architectures and binary formats. It features code analysis capabilities, scripting, data and code visualization through graphs and other means, a visual mode, easy unix integration, a binary diffing engine for code and data, a shellcode compiler, and much, much more!