Metasm: Assembler, disassembler, compiler, linker and debugger

Metasm is a cross-architecture assembler, disassembler, compiler, linker and debugger. It is written in pure Ruby, with no dependency.

It has some advanced features such as live process manipulation, GCC/Microsoft Visual Studio-compatible preprocessor, automatic backtracking in the disassembler (similar to “slicing”), C headers shrinking, Linux/Windows/remote debugging API interface, a C compiler/decompiler, a gdb-server compatible debugger, and various advanced features.

For now, the following architectures are supported:

  • Intel IA32 (16/32/64bits)
  • MIPS
  • PPC.

The following file formats are supported:

  • Raw (for shellcodes)
  • MZ, PE/COFF (32 and 64 bits)
  • ELF (32 and 64 bits)
  • Mach-O (incomplete) and UniversalBinary
  • a few other (a.out, xcoff, nds).

Metasm has been integrated into Metasploit, however the Metasploit trunk is not necessarily synced with the latest version.

Don't miss