A little intro to reverse engineering

A little intro to reverse engineering

Low Level does a very brief but decent introduction to reverse engineering binaries (on linux).

He doesn’t discuss it, but when reverse engineering it’s always good to start with what your goal is. There’s a variety of reason to reverse engineering at the binary level:

  1. Learning how an algorithm or binary works
  2. See what assembly code your compiler is generating (for optimization, performance analysis, etc).
  3. Trying to debug or fix an issue without source
  4. Trying to discover vulnerabilities in enemy systems
  5. Trying to hack in/out behavior (copy-protection removal, remove checks that cause crashes, etc)

This is important, because each goal often focuses on a different set of reverse-engineering skills.

Real world reverse engineering also carries many possible legal dangers. In the past, companies reverse engineered mechanisms to compete against companies that had monopolies and ended up in massive lawsuits. Atari vs Nintendo lawsuit and Sega v. Accolade are good examples. The methods of doing legal reverse engineering is a complex legal topic that requires very carefully monitored and documented clean-room procedures.
It’s a fascinating world in which big companies to nefarious hackers engage in.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.