diStorm – very quick (open source) stream disassembler

distorm is just another stream disassembler, but… the quickest one i have ever seen and it supports amd64. the guy (arkon, gil dabah) must have no life as this thing is very good and must have taken quite some time to develop. it is open source.

it’s available for windows, linux and general *nix. there is also a pe binary parsing library in the package.

distorm64 is an amd64 disassembler, which is the first open source disassembler library for amd64 out there, licensed under the bsd license.

distorm is a binary stream disassembler. it’s capable of disassembling 80×86 instructions in 64 bits (amd64, x86-64) and both in 16 and 32 bits. in addition, it disassembles fpu, mmx, sse, sse2, sse3 and 3dnow! (w/ extensions) and new x86-64 instruction sets. distorm was written to decode quickly every instruction as accurately as possible. robust decoding, while taking special care for valid or unused prefixes, is what makes this disassembler powerful, especially for research. another benefit that might come in handy is that the module was written as multi-threaded, which means you could disassemble several streams or more simultaneously.
for rapidly use, distorm is compiled for python and is easily used in c as well. distorm was originally written under windows and ported later to linux.


a similar disassembler was recently released by piotr bania, called disit. also very good but my personal preference is distorm. disit is also still in beta.

gadi evron,

  • http://ragestorm.net Arkon

    I just wanted to make a correction that diStorm is written in C, and is also wrapped as a Python extension module. So it’s both avaiable as a C library and as a python module.