Schedule

The schedule will change as the course progresses, in part based on student interests. If you are particularly interested in some topic not covered here, send mail to the course staff.

MondayTuesday WednesdayThursday Friday
Aug 24 Aug 25
LEC 1: Course Intro & Preliminary Rev. Engineering #1 lec01.pptx
Preparation: What really happened on Mars Rover Pathfinder?
Preparation: Nearly 3 Years Later, SolarWinds CISO Shares 3 Lessons From the Infamous Attack
Resource: class onboarding
First day of the class
Aug 26 Aug 27
LEC 2: Code compilation and binary generation; system architecture basic; calling conventions and binary ABI lec01-x86-assembly.pptx lec01-tools.pptx
Preparation: Smashing The Stack For Fun And Profit
Resource: x86 Assembly Guide
Resource: Intel Code Table
Resource: Assembly-HOWTO
Resource: Intel vs AT&T format
Resource: Linux assemblers: A comparison of GAS and NASM
Assigned: Unit 1
Aug 28
Aug 31 Sep 1
LEC 3: x86 assembly I; intro to debugging & reversing toolchains
Sep 2 Sep 3
LEC 4: x86 assembly II; calling conventions; data encoding
Sep 4
Sep 7 Sep 8
LEC 5: Basic system and binary attacks; ELF format; loading and dynamic linking programs
DUE: Unit 1
Assigned: Unit 2
Sep 9 Sep 10
LEC 6: x86 shellcoding; how system call works; basic system defenses
Sep 11
Sep 14 Sep 15
LEC 7: Program loading and process instantiation PPTX
Preparation: Read Anatomy of a system call Part1, Part2
Assigned: Unit 2-2
Sep 16 Sep 17
LEC 8: Code hijacking attacks I; stack overflow attack; shellcoding attack
Sep 18
Sep 21 Sep 22
LEC 9: Code hijacking attacks II; system mitigations lec05-mitigation
Sep 23 Sep 24
LEC 10: Code encoding and binary disassmebly challenges
DUE: Unit2
Assigned: Unit3
Sep 25
Sep 28 Sep 29
LEC 11: System security mitigation
Sep 30 Oct 1
LEC 12: ASLR defenses; ROP attacks and defenses
Oct 2
Oct 5 Oct 6
LEC 13: ROP and Format String attacks lec07-fsv.pptx
TUT 1: inscounts example tutorial
Preparation: The Anatomy of an Executable, The ELF Object File Format by Dissection
Oct 7 Oct 8
LEC 14: Binary Instrumentation with PIN lec07-pintools.pptx
DUE: Unit3
Resource: LiveOverflow: Global Offset Table (GOT) and Procedure Linkage Table (PLT) - bin 0x12
Assigned: Unit4 Unit4 descrpiption
Oct 9
Oct 12
Mid-term week
Oct 13
Mid-term week
Oct 14
Mid-term week
Oct 15
Mid-term week
Oct 16
Mid-term week
Oct 19 Oct 20
LEC 15: Binary instrumentation and binary translators I lec08.pptx
Resource: Read DynamoRio paper
Resource: Online assembler/disassembler
Oct 21 Oct 22
LEC 16: Inline reference monitors lec09.pptx
Preparation: Inline reference monitors
Preparation: libdft
DUE: Unit4 Part1
Oct 23
Oct 26 Oct 27
LEC 17: Inline reference monitors II
Oct 28 Oct 29
LEC 18: Virtualization basics and principles I
Oct 30
Nov 2 Nov 3
LEC 19: Virtualization basics and principles II lec10-virtualization.pptx
Nov 4 Nov 5
LEC 20: Code emulation and light-weighted virtualization (e.g., containers) lec11-container.pptx
DUE: Unit4 Part2
Assigned: Unit 5
Nov 6
Nov 9 Nov 10
LEC 21: Special topic I --- HDL decompilation and security analysis
Preparation: PyLingual: Toward Perfect Decompilation of Evolving High-Level Languages
Nov 11 Nov 12
LEC 22: Static binary rewriting and decompilation I
Preparation: Reassembly is Hard: A Reflection on Challenges and Strategies
Nov 13
Nov 16 Nov 17
LEC 23: Static binary rewriting and decompilation II
Preparation: Read Running the “Reflections on Trusting Trust” Compiler
Preparation: Read Reflection on Trusting Trust by Ken Thompson, Turing Award lecture, 1984.
Nov 18 Nov 19
LEC 24: Speicial topic II -- Data-driven Analysis for Cybersecurity; Provenace-based ML Security
Nov 20
Nov 23
Thanks giving
Nov 24
Thanks giving
Nov 25
Thanks giving
Nov 26
Thanks giving
Nov 27
Thanks giving
Nov 30 Dec 1
LEC 25: Symbolic execution and program fuzzing
Preparation: angr: a platform for binary analysis
Dec 2 Dec 3
LEC 26: Hardware security issues and mitigations
DUE: Unit 5
Dec 4
Dec 7 Dec 8
LEC 27: Final project discussion
Dec 9 Dec 10
LEC 28: Final exam preparation and review
Dec 11
Final week
Dec 14
Final week
Dec 15
Final week
Dec 16
Final week
Dec 17
Final week
Dec 18
Final week