Practical Reverse Engineering Introduction
What Is Reverse Engineering?
Reverse engineering is a technical black
art; it is a forbidden technique that few dare to discuss; it is a
recreational activity undertaken my computer hackers with just the right
mix of smarts and mental instability.
One simple interpretation of reverse engineering is that it is the craft of
taking something, anything, apart to understand how it works. That something
can be a physical, mechanical object like a toaster or an automobile. It can
also be a software program. Reverse engineering the latter is the focus of
this site.
Personal History
When I first became keenly interested in RE years ago, I found that useful
information was sparse. The information I could find was generally divided
into 2 categories:
- Impenetrable, high-level, dry, academic papers, the focus of which was
usually rather unclear (e.g., were they trying to to RE from binary code or from
source code)
- Cracker sites with liberal doses of l33t-speak; the focus of these sites
was more clear: To crack software copy restriction codes.
The latter was typically a little more useful than the former if you could
get past the thick jargon.
Alas, software RE tends to be primarily a self-taught skill. Hopefully, this
site can give you some direction if you are genuinely committed to learning
this arcane craft.
Prerequisites For Software Reverse Engineering
Is reverse engineering difficult? Oh yeah. Does it require expensive tools?
It does not have to. Here are some basic things you will need to be a
successful reverse engineer:
- time (lots)
- patience (a lot of this too)
- tenacity (do not give up)
- a goal (something you want to RE)
- the tools (freely available)
- programming knowledge (you do know C, right?)
- domain knowledge (know what the RE target might look like)
Site Focus
Just so you know, the articles on this site tend to focus towards reverse
engineering technology related to electronic multimedia. This is because
the maintainer of the site is primarily interested in multimedia technology.
Return to the main page