Intended as a first glimpse into Reverse Engineering (RE), this workshop is intended as a high level look at RE both as a skill and as a field and includes both a foundational discussion portion, as well as hands-on demonstration. The course is designed not to try and make attendees an expert on everything RE (an impossible task), but to give enough insight and resources on how and where to get started so that they can continue on after the course. The discussion portion will include what reverse engineering is, use cases and sub-niches, different layers and levels of code abstraction, types of assembly, static and dynamic analysis and the most common tools for each.
The practical portion will consist of an exercise in reversing a beginner level challenge using a disassembler and, time permitting, with a debugger. Participants can download and install the software ahead of time to follow along during the hands on portion, or simply watch and absorb. The instructor will be using Ghidra and GNU Debugger (GDB) on an Ubuntu 20.04 machine, however attendees are free to use the tools and platform of their choice with the understanding that they may differ in interface and/or capabilities.
Pre-requisites/assumed knowledge:
- Curiosity
- A tolerance for complexity
- Optional: A computer with Ghidra installed.