Miasm is a a free and open source (GPLv2) reverse engineering framework. Miasm aims at analyzing/modifying/generating binary programs.
Here is a non exhausting list of features:
- opening/modifying/generating PE/ELF 32/64 le/be using Elfesteem
- Assembling/Disassembling ia32/ppc/arm
- Representing assembly semantic using intermediate language
- Emulating using jit (dynamic code analysis, unpacking, …)
- Expression simplification for automatic de-obfuscation
- Graphic disassembler using Grandalf
Miasm embed its own disassembler, intermediate language and instruction semantic. It is written in Python.
To emulate code, it uses libtcc to jit C code generate from intermediate representation. It can emulate shellcodes, parts of binaries. Python callback can be executed to emulate library functions.
For more details and download: