Reverse-engineering is an essential skill for many cybersecurity disciplines: vulnerability assessment, malware analysis, software interoperability and more.
This course is designed to introduce students to the fundamentals of software reverse-engineering, all common to desktop, mobile, and embedded architectures.
Over five days, we introduce students to several instruction set architectures, including x86: x64 PowerPC ARM, and MIPS. We cover recognizing C code constructs in assembly code and reverse-engineering with IDA Pro and Ghidra.
The course is mostly supervised lab exercises with lectures and theory in support.