Compiling, Decompiling, and Recompiling are what many individuals that are learning programming have a hard time understanding. The difference being that they each are the reverse of another. One is used by the people who make programs, and the other by people who wish to learn how these programs are written, or to crack them.
Compiling is what coders and software developers do to make there source code into a program that you can’t get the source from. It is made to be readable by the computer but not humans, unlike source code which is designed so the computer can read it but a human can easily read it and code it together. The act of compiling is usually done by encrypting the data through multiple stages until it can’t be read. This prevents people from modifying the software and stealing its code. But the methods they use don’t always work…
Decompiling is the act of reversing what the developers do to make the code unreadable. It removes the encryptions, and gives the decompiler a messy outline of what the source code would look like but not as detailed. This allows the person to piece together roughly what things do and build from there. The fact that they have the source allows for mods, cracks, hacks, and who doesn’t love finding out exploits. The problem with most encryptions now are they are very hard to interpret but there are people who manage to still write up some clever programs to get past all the stuff.
Recompiling is when you take modified decompiled code, and compile it back it to its runnable unreadable state. This means that people who makes mods, cracks, etc to be able to make it easy for the person who is wanting to use it. And seeing as it is in the same format and encryption the program reads it the same as the original file. Recompiling is only really useful to those that made changes to the code, but not neccesary for people who are just using their code as a base for their own.