Decompiler
|
A decompiler is a computer program that translates executable programs (the output from a compiler) into an equivalent (relatively) high level language (source code). By comparison, a disassembler translates an executable program into assembly language.
Decompilation is a technique for the recovery of lost source code. It is also useful in some cases for computer security, interoperability, error correction, and more (see why decompilation (http://www.program-transformation.org/Transform/WhyDecompilation)). Decompilation of Java bytecode programs is relatively easy, and there are many successful Java decompilers. Decompilation of binary programs is much harder; as a result there are very few machine code decompilers, and they tend to fail (so far) on all but the smallest programs.
Discussion of legal and ethical issues of decompilation can be found in the article on reverse engineering.
See also
External links
- The Boomerang Decompiler (http://boomerang.sourceforge.net/) is an attempt at a retargetable machine code decompiler. It is presently capapable of decompiling small binary files (pentium, SPARC, and Power PC) to the C language. Boomerang is available under a BSD-like license, and can be run on various Unix and Windows platforms.
- REC - Reverse Engineering Compiler (http://www.backerstreet.com/rec/rec.htm) by Giampiero Caprino. REC is a portable reverse engineering compiler, or decompiler. It reads a machine code file, and attempts to produce a C-like representation of the code and data used to build the executable file. While source code is not available, binary distributions of REC for several platforms can be downloaded for free.
- The DeCompilation Wiki (http://www.program-transformation.org/Transform/DeCompilation) discusses various aspects of decompilation: history, research, decompilers for machine code, Java, Visual Basic, and so on.
- Lutz Roeder's .NET Reflector (http://www.aisto.com/roeder/dotnet/) is a widely adopted tool that merges class browser and decompiler for the purpose of navigation and understanding of code libraries.
- Citations from CiteSeer (http://citeseer.org/cs?q=decompiler)de:Decompiler