Jump to content

Decompiler

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by 140.247.60.130 (talk) at 22:43, 6 May 2006 (call a spade a spade). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

A decompiler is the name given to a computer program that performs the reverse operation to that performed by a compiler. That is, it translates a file containing information at a relatively low level of abstraction (often designed to be computer readable rather than human readable) in to a form having a higher level of abstraction (often designed to be human readable). This term is most commonly applied to the translation of executable programs (the output from a compiler) into source code in a (relatively) high level language (that when compiled will produce an executable whose behavior is the same as the original executable program). By comparison, a disassembler translates an executable program into assembly language (an assembler could be used to assemble it back into an executable program).

Decompilation is the act of using a decompiler, although the term can also apply to the decompiled output. It can be used for the recovery of lost source code, and is also useful in some cases for computer security, interoperability, error correction, and more (see "Why Decompilation"). The success of decompilation depends on the amount of information present in the code being decompiled and the sophistication of the analysis performed on it. The bytecode formats used by many virtual machines (such as Java's JVM) often include extensive metadata and high-level features that make decompilation quite feasible. Machine code has typically much less metadata, and is therefore much harder to decompile.

Some compilers and post compilation tools obfuscate the executable code (that is, attempt to produce output that is very difficult to decompile). This is done to make it more difficult to reverse engineer the executable.

See also

General information

Decompilers