John Källén halsten

Decompiler is a GUI and command-line program that reads executable program binaries, decompiles them, infers data types, and emits structured C source code.

It currently supports loading executable file formats like MZ, ELF, AmigaOS Hunk, and Classic MacOS exectuables. In addition, it has the capability of automatically running unpacking scripts written in the OllyScript language.

Currently, Decompiler has reasonably complete support of x86, 68k, PowerPC (32- and 64-bit) processor architectures; you should be able to decompile most of any binary targeting these architectures. Partial support of Z-80, M6502, and PDP-11 processor architectures is in place. Naturally, new architectures are always welcome!


I have a binary that has been packed with a [Packer] and Decompiler is failing to open it. Decompiler has an extensible architecture that supports adding unpacking scripts. If you need assistance with a specific unpacking script, create a Feature request and you will get assistance.


If you're interested in contributing to the project, take a look at the [Design] pages to gain insight in how the project is organized. We strongly encourage you to follow the [Test Driven Development] methodology, with heavy emphasis on [Unit testing]. The [How To] page discusses how you go about implementing new features in the decompiler.

Screen shots

Screenshot thumbnail
Disassembly of x86 PE executable.
Screenshot thumbnail
Disassembly of M68k Hunk executable. Disassembled executable code in red, data in blue. Users can mark memory ranges and specify the relevant data type.
Screenshot thumbnail
Decompiled M68k code.

Project Admins:


Wiki: Design
Wiki: How To

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks