ELI5: reverse engineering
In computer science, reverse engineering is the process of taking a finished piece of software or hardware apart to figure out how it works and how it was made.
Imagine someone gives you a delicious, mystery chocolate cake, but they will not give you the recipe. To learn how to make it yourself, you would taste it carefully, look closely at the layers, and test the ingredients to guess the secret recipe.
In the computer world, developers usually build things by starting with a "recipe" called source code, which is written in human-readable language. A computer then turns that recipe into a finished product, like an app or a video game, which is just a giant bundle of machine numbers that humans cannot easily read.
Reverse engineering means working backward from that finished app to uncover the original ideas inside it.
Here is why people do it:
- Fixing things: If an old computer program breaks and the original creators lost the recipe, engineers take the program apart to find and fix the problem.
- Safety and security: Security experts tear apart dangerous malware (computer viruses) to see what harm it does and how to protect people from it.
- Making things work together: A company might want their new video game controller to work on an older console, so they study the console to learn how it "talks" to controllers.
- Learning: Curious programmers take things apart simply to learn how smart systems were built so they can make their own better things.
How was this explanation?
Follow-Up Questions
Still curious? Ask a follow-up!
Test Your Understanding
Take a quick quiz and challenge your friends!
📧 Get this explanation by email
Receive this explanation in your inbox, plus get weekly simple explanations of trending topics!