Introduction to Software Reverse Engineering presented at saintcon 2017

by Waylon Grange,

Summary : If you were the kid who took things apart to see how they worked this course may be for you. Reverse Engineering is the processes of extracting knowledge or design information from anything man-made. SRE (Software Reverse Engineering) or RCE (Reverse Code Engineering) is the process of disassembling binary programs with the intent of understanding their functions, features, and capabilities.
There are many reasons to perform SRE as it has applications in many fields. It is often used for security auditing, cracking, circumventing access restrictions, customizing embedded systems, repairs or retrofits, enabling crippled features, or even mere satisfaction of curiosity. Whatever the reason the skill set is the same. That is the ability to look into a compiled binary and extract from it key information on its design that may or may not be revealed to the end user that runs the application.
In this course, we'll focus on x86 Assembly language and Windows PE file format. The principles from this course can then be applied to other operating systems and instruction sets. Having a basic understanding of C programming is recommended as a prerequisite but it is not required be proficient in the C language.
A windows machine (or VM) is required for the course.
We will be using the freeware version of IDA and a hex editor for the labs.