🔰 Reverse Engineering Explained for Beginners 🔰
What is reverse engineering?
It's pretty simple, all you do is read and modify opcodes turned into assembly instructions either from memory or the binary you are targeting.
Now, most of you might ask what these words actually mean. You might had already seen how code looks like, for example std::cout << "Hello, world!" << std::endl;
However, that is not what the computer understands. The CPU, which deals with understanding and executing "code", only understand opcodes(operation codes). These opcodes
are not easy to read as a human, therefore assembly was invented. However, these aren't easy to work with either, therefore programming languages were also invented. In order
for the CPU to actually understand what it needs to do, there are multiple steps until a program is able to be understood by it. The main steps you should know are compilation and assembling.
The compiler takes the code written in a language you are familiar with and turns it into assembly instructions. Then, the assembler turns the result into opcodes which the CPU can understand.
The reason this helps us is because we can use another step known as disassembling, which turns these opcodes back into assembly instructions.