Download the Complete Course Syllabus

This 3-day, hands-on course offers an examination of the fundamental techniques of software reverse engineering used by attackers and security researchers alike. The lectures and exercises provide a practical foundation for all areas of software security research, including forensics, penetration testing, vulnerability research, exploit development, and malware analysis. The course covers general concepts and techniques that apply to the full spectrum of computing targets, from bare-metal and RTOS-powered embedded systems to mobile and desktop systems running Android, Windows, Linux and MacOS.

Attendees will gain hands-on experience with state-of-the-art techniques and tools of the hacking trade through a series of lab exercises that reinforce the content of the lecture material. The exercises will incorporate several popular instruction sets, including x86, MIPS, PowerPC, and ARM. Students will learn how to use Binary Ninja to reverse binaries, and each student will take home their own licensed copy of Binary Ninja! Each student will also take home a hardware platform that will be used in several student exercises throughout the course. The reversing skills learned in the course are transferable to IDA Pro and other disassemblers.

Topics covered during this course include:

Static Analysis

Dynamic Analysis

Firmware-Specific Techniques

Vulnerabilities and Exploits

Final Project

Prerequisites: Attendees should be experienced with the C and/or C++ programming languages and should have some prior exposure to assembly language.

Requirements: Each student will need to provide their own laptop and must have administrator access. The laptop must have WiFi support and at least one USB Type A port (i.e., not Type C). Some of the lab exercises will be performed in a VM, and the students should install VMware on their system before arriving for the first day of class. (The free trial version of VMware is sufficient if you do not already own a license. To download, go to https://www.vmware.com/try-vmware.html)