Lectures

Please watch the relevant video prior to class. Also, download the exercises - we will be using them during class. Subtitles (English, Swedish, Japanese, Spanish, and Chinese (PRC and TW)) are available for some videos. Slides exist in two forms, with and without animations. Instructors can contact us for the key to unlock answers to in-class exercises.

Introduction

Low-level Programming

Lectures on X86 assembly code and machine code.

Static Analysis

Lectures on statically analyzing data and control flow.

Dynamic Analysis

Lectures on debugging, tracing, etc.

Reverse Engineering

Lectures on using reverse engineering tools and strategies for attacking binary programs.

Software Protection

Lectures on code obfuscation and tamper-proofing.