Decompiler

A decompiler (English Decompiler or Reverse compiler Reverse Engineering Compiler) is a computer program that generates from the machine or object code again human readable code in a high level language. He tried to reverse the process of compiling.

A decompiler is not to be confused with a disassembler, because the assembly language is only an alternative form of representation of the machine code.

Operation

Because there is no inverse function for compilation, decompilation is a reverse engineering technique. It is used for subsequent re- creation of the source code based on an executable program. The source code has recovered to a certain extent similar to the original version of the source code that was used to generate the executable program. If more debug information is also stored in this executable program, then can be recovered often the variable names, function names, and modules used by the original author. Lost Gone are usually comments and the original formatting, since both types of information are typically not included in the compiled program.

The decompilation of bytecode, such as Java and. NET programs is usually less complicated than decompilation of machine code, as these systems take relatively much information of the original source code with the object file, similar to the debug version of a C or C program. Retained by public identifiers particular, the type information and the name. The decompiled code is only functionally identical to the original source file.

Limitations

If the program was, however, translated with an optimization option of the compiler and it does not contain any debugging information or it was even veiled with a obfuscator, then the recovered source code in individual cases may be disfigured unavailability.

Because of these limitations, decompilation usually is not enough to restore lost source code. This should anyway always be present in multiple backups. Under normal circumstances, a programmer will never need to use a decompiler. For very old software but it comes before every now and then that the original sources have been lost or are on disk, for which no matching readers are more available. In the early days of electronic data processing, it was also customary to fix small errors by patching the object files. These cases are in addition to the reverse engineering of foreign software, the only exceptions are for the decompiler to use.

Terms of Use

Commercial software vendors have their licenses often point out that the Decompiling their products is prohibited (except to change only for study purposes or download it for personal use ).

However, according to § 69e Copyright Act allowed in Germany to decompile a program, to the extent necessary to obtain the " interoperability " with an independently created computer program from the original program. License agreements that contradict, are void.

224794
de