Reverse Engineering Education

This is the start of a new project for me.  It’s ambitious in that it will take a lot of time and work, but I think it will pay off well in the end.

Goal:

The goal of this project is to provide a complete education in the field of reverse engineering.

Lets define what a complete education means.  There will be no certificates or degrees at the end of this project.  I have two goals in mind:  professional and research competency.

By professional competency I mean the ability to work at the level required in industry.  To have the ability to be handed a professionally developed application, firmware, or malware and successfully reverse engineer it.

By research competency I mean the ability to understand research papers in the field and contribute to active research areas if so desired.

Prerequisites:

The prerequisites that I am assuming are as follows:  Basic experience with a high level programming language, preferably C.  A basic understanding of mathematical thought.

What constitutes a basic understanding of mathematical thought you may ask?  The ability to follow logical reasoning to support conclusions.  If you have any questions about your ability in this area I would suggest simply starting the material in a section that uses it and then if you get stuck fall back to more basic mathematics material to build back up to it.

Process:

The process of this project is to go through the relevant subjects starting from the beginning.  This will be a long process that will take a lot of work.  How far you want to go with it is up to you.  In the beginning as these are being posted I will focus on one subject from both the applied and the theoretical side of reverse engineering at the same time.  Set up in a process like a university program would be set up.  But I plan on going more in depth than a university course allows.

A fairly loose schedule which will be modified I’m sure goes as follows: (Thanks to Mobius Strip Reverse Engineering for a starting point).

  • x86 Assembly and Architecture / Theory of Computation
  • Introduction to Reverse Engineering / Programming Languages
  • Analyzing Malware / Compilers
  • Modern Binary Files / Formal Semantics
  • Intermediate Reverse Engineering / Algorithms
  • Advanced Reverse Engineering / Lattices and Order
  • Program Analysis / Calculus of Computation
  • Advanced Program Analysis / Decision Procedures

Basic Idea:

The idea behind this whole project is to have the only cost associated with this program to be some books and some time.  Then by the end of it have a fully developed professional skill.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s