How do people reverse-engineer compiled applications to get the source code?

316 views

I know the long answer to this question would probably be the equivalent of a college course, but can you summarise how tech people do this?

If you open game.exe with a text editor you’re just going to get what looks like a scrambled mess of characters, so how would one convert this into readable source code?

In: 5

12 Answers

Anonymous 0 Comments

A comparison answer: Computers need very specific instructions, which it holds in assembly/BASIC. If they were driving instructions to drive until a turn and then make it would be something like

* Accelerate in a straight line until 15 m/s has been achieved.
* Maintain velocity until 100 m before turn location.
* Begin decelerating to safe turning speed and maintain until at turn.
* Begin turning to the right in an arc that is 5 m in radius until 90° has been achieved.
* Accelerate until 15 m/s has been achieved.

Though a real driving program would need a bunch more details, but you should get the picture.

Looking at what is happening above, a reverse engineer could make assumptions that the above list is just the instruction “Drive at the speed limit and then take a right turn”.

In computer programs, it is the same principle but applied to programming languages instead. The assembly instructions are all made out of a limited amount of instructions that they can compare to a list, so looking at the assembly (the apparently nonsense characters) allows the engineer to know all of the tiny instructions that the program is doing, and then “reverse” the tiny instructions into bigger instructions that are easier for a human to get the bigger image of what the program is doing.

You are viewing 1 out of 12 answers, click here to view all answers.