Schedule. The following schedule is only an approximate and is subject to change.

  Date Topics Slides and readings
Week 1 1/8 Introduction Slides
1/10 x86 assembly language basics Slides; intro to IA32
Week 2 1/15 Reverse engineering basics RE basics; executable file formats;
1/17 intro to x86-64; stack smashing
Week 3 1/22 Binary analysis overview
1/24 Class canceled due to snow
Week 4 1/29 Static disassembly Overview slides; Static Disassembly of Obfuscated Binaries
1/31 Class canceled due to cold weather
Week 5 2/5 Static disassembly
2/7 Static disassembly
Week 6 2/12 Class canceled due to snow
2/14 Static analysis Principle of Program Analysis: Chapter 2
Week 7 2/19 Static analysis Principle of Program Analysis: Chapter 2
2/21 Binary static analysis
Week 8 2/26, 2/28 Class canceled due to instructor academic travel Please work on your research project!
Week 9 3/5, 3/7 Spring break Have a good break!
Week 10 3/12 Student research project presentation
3/14 Static analysis using Datalog Slides; Demo code; Dataflow Demo code
Week 11 3/19 Static analysis using Datalog Slides; Demo code; Dataflow Demo code
Week 11 3/21 Static analysis using Datalog
Week 12 3/26 Static analysis using Datalog Slides; Demo code; Dataflow Demo code
3/28 Control-flow integrity
Week 13 4/2 Student research project presentation
4/4 More on static analysis; software-based fault isolation More on static analysis; SFI Survey
Week 14 4/9 Dynamic symbolic execution
4/11 Software-based fault isolation SFI Survey
Week 15 4/16 Taint tracking
4/18 Binary-level type inference
Week 16 4/23 Binary code obfuscation
4/25 Student research project presentation