Science Fair Project Encyclopedia
Decompilation
Decompilation is the process of translating an executable program into high level source code using a decompiler. This is the inverse process to a compiler, but a general decompiler will not attempt to exactly reverse the translation steps of the particular compiler used.
Decompilation is similar to disassembly, but while disassembly translates executable code into assembly language source code, decompilation translates the same executable code to high-level language source code. There is some art to finding a single line of high-level language that best represents the equivalent block of machine code.
Decompilation of programs compiled for a virtual machine (e.g. Java byte-codes) is generally much more successful than decompilation from machine code, because of the extra information contained in virtual machine binary file formats.
Results can be improved if the decompiler has the entry points of the libraries and DLLs. It should also have an editable symbol table to help the decompiler to document its output.
See also
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details


