In this series of articles, I will discuss the techniques and tools for reverse-engineering computer programs. This is my own personal take on a subject that is as much art as it is science and, as such, may differ from how others would approach it.

We will assume that the reader knows how to program in the C programming language and can read assembly code, but not necessarily the specifics of the target platform we will be using.

Performing acts of reverse-engineering may have legal issues surrounding them depending on your jurisdiction. Such issues will not be covered here.

The files for this case study can be found here: case-study.tar.gz