A source code is the text of a computer program written in a programming language. The computer automatically converts this human-readable text into a machine-readable language. In order to be able to open up software source code, the translation of the machine languages must be reversed. A decompiler is used for this purpose. This is a computer program that generates a human-readable source code from the binary machine code. This process of retranslating the machine-readable binary code into a human-readable source code takes place automatically.
If the binary code cannot be completely reconstructed, a disassembler can be used. This program converts the binary-coded machine language into a human readable assembler language, which is then manually analysed. In most cases it is not possible for programmers to reconstruct the complete source code. In principle, this isn't a problem, since reverse engineering code is more about understanding the grand scheme of things, rather than being able to map the original code completely. Even partial codes can be used to perform behavioural analyses of the software or to correct errors. Software developers in particular very often use decompilers and disassemblers.