Boomerang for Windows 0.3.1 Alpha 1.0

A general, open source, retargetable decompiler of machine code programs

This project is an attempt to develop a real decompiler for machine code programs through the open source community.

Boomerang for Windows 0.3.1 Alpha 1.0

A general, open source, retargetable decompiler of machine code programs

This project is an attempt to develop a real decompiler for machine code programs through the open source community. A decompiler takes as input an executable file, and attempts to create a high level, compilable, possibly even maintainable source file that does the same thing. It is therefore the opposite of a compiler, which takes a source file and makes an executable. However, a general decompiler does not attempt to reverse every action of the decompiler, rather it transforms the input program repeatedly until the result is high level source code. It therefore won't recreate the original source file; probably nothing like it. It does not matter if the executable file has symbols or not, or was compiled from any particular language. (However, declarative languages like ML are not considered.)

The intent is to create a retargetable decompiler (i.e. one that can decompile different types of machine code files with modest effort, e.g. X86-windows, sparc-solaris, etc). It was also intended to be highly modular, so that different parts of the decompiler can be replaced with experimental modules. It was intended to eventually become interactive, a la IDA Pro, because some things (not just variable names and comments, though these are obviously very important) require expert intervention. Whether the interactivity belongs in the decompiler or in a separate tool remains unclear.

By transforming the semantics of individual instructions, and using powerful techniques such as Static Single Assignment dataflow analysis, Boomerang should be (largely) independent of the exact behaviour of the compiler that happened to be used. Optimisation should not affect the results. Hence, the goal is a general decompiler.

Boomerang's License

<em>Why the change?</em>

The original vision for Boomerang was somewhat different from what it turned out. There were high hopes that it would be quite usable by now, and that perhaps several commercial companies might like to incorporate the Boomerang engine into their product. For example, a disassembler like IDA Pro or Sourcer. However, this has not happened, so the advantage of a BSD-license (i.e. that it can be used as part of proprietary as well as free software) becomes moot.

Not releaseing Boomerang under the GNU General Public License becomes more and more difficult to sustain, because of all the highly useful GPL'd software that can't be used. One example is the GNU BFD library for reading executable, object, and library files. Hopefully soon, Boomerang will have signature generating and library function identifying software, and this is easier using the GPL'd BFD library. As you no doubt know, using GPL'd code in any body of code requires the whole body of code to be released under the GPL.

So soon, Boomerang will transition from a BSD-like license to a combined BSD-like license and the GPL. (Some existing code was written while the authors were working for Sun Microsystems, and that code must be used in conjunction with the BSD-like license.

<em>How does Boomerang's new license work?</em>

The requirements for both parts of the license are quite simple, and are readily combined. Basically, the restrictions are:

* The file LICENSE.TERMS has to be distributed with the source code or binary distributions. This file is basically the combined original LICENSE.TERMS file with the GPL license file.
* Source files with the Sun copyright notice must retain those notices.
* Source files with the GPL notice must retain those notices.
* Modifications to the source code and the binaries generated from them can be freely redistributed, as long as these conditions are met, and in addition the usual GPL conditions are met. In other words, the source code must be made available either from a web site (the Sourceforge project page satisfies this requirement).

   



Top Software

New Software

Top Search

Latest Reviews