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 (mailto:staff). Please visit our scoreboard at the submission web site, and importantly, ask any questions (and things to discuss) with colleagues and staffs via Piazza.

MondayTuesday WednesdayThursday Friday
Aug 21
First day of class (No class)
Aug 22 Aug 23 Aug 24 Aug 25
LEC 1: Warm-up: x86, Tools
TUT 1: GDB/x86
Preparation: Read asm
Assigned: Lab 01: Bomb Lab1
Aug 28 Aug 29 Aug 30
REC 1: Lab 01
Aug 31
DUE: Lab 01
Sep 1
LEC 2: Warm-up: x86_64, Shellcode, Tools
TUT 2: PEDA, Shellcode (video/slides)
Preparation: Read x86_64
Assigned: Lab 02: Bomb Lab2 / Shellcode
Sep 4
Labor day
Sep 5 Sep 6
REC 2: Lab 02
Sep 7
DUE: Lab 02
Sep 8
LEC 3: Writing exploits
TUT 3: IDA, Your first control hijacking
Preparation: Read Phrack #49-14
Assigned: Lab 03: Stack Overflow
Sep 11 Sep 12 Sep 13
REC 3: Lab 03
Sep 14 Sep 15
LEC 4: Exploiting stack overflows
TUT 4: Pwntool, Your first exploit!
Preparation: Read pwntools
Preparation: Read NSA Codebreaker Challenge
Assigned: Lab 04: NSA Codebreaker Challenge
Sep 18 Sep 19 Sep 20
REC 4: Lab 03/Lab 04: Last Year's Challenges
Sep 21
DUE: Lab 03
Sep 22
LEC 5: Stack Protections
TUT 5: Bypassing Stack Canaries
Preparation: Read Bypassing StackShield
Assigned: Lab 05: Bypassing Stack Protection
Sep 25 Sep 26 Sep 27
REC 5: Lab 05
Sep 28
DUE: Lab 05
Sep 29
LEC 6: DEP and ASLR
TUT 6: Format string vulnerability
Preparation: Read ASLR Smack & Laugh Reference
Assigned: Lab 06: Bypassing DEP/ASLR
Oct 2 Oct 3 Oct 4
REC 6: Lab 06
Oct 5
DUE: Lab 06
Oct 6
LEC 7: Return-oriented Programming (ROP)
TUT 7: Your first ROP
Preparation: Read ROP
Assigned: Lab 07: Return-oriented Programming
Oct 9
Fall Student Recess
Oct 10
Fall Student Recess
Oct 11 Oct 12 Oct 13
NSA Talk (Ryan Wilson)
Oct 16 Oct 17 Oct 18
REC 7: Lab 07
Oct 19
DUE: Lab 07
Oct 20
LEC 8: Remote Exploitation
TUT 8: Socket Programming in Python!
Assigned: Lab 08: Remote Attacks
Oct 23 Oct 24 Oct 25 Oct 26 Oct 27
Hacking Day
Oct 30 Oct 31 Nov 1
REC 8: Lab 08
Nov 2
DUE: Lab 08
Nov 3
LEC 9: Miscellaneous I
TUT 9: Make Reliable Exploit
Assigned: Lab 09: Exploiting Misc1 (int-ovfl, race, tictou &c)
Nov 6 Nov 7 Nov 8
REC 9: Lab 09
Nov 9
DUE: Lab 09
Nov 10
LEC 10: Heap Memory Allocation
TUT 10: Your first heap exploit
Assigned: Lab 10: Exploiting Heap Bugs
Nov 13 Nov 14 Nov 15
REC 10: Lab 10
Nov 16
DUE: Lab 10 (a week extension)
Nov 17
LEC 11: Fuzzing and symbolic execution
TUT 11: AFL
Assigned: Lab 11: Exploiting Misc2 (bypassing sandbox, kernel exploits &c) (Alternative: Web Exploitation)
Nov 20 Nov 21 Nov 22
Thanksgiving
Nov 23
Thanksgiving
Nov 24
Thanksgiving
Nov 27 Nov 28 Nov 29 Nov 30
DUE: Lab 04 (NSA)/11
Dec 1
LEC 12: Insu Yun, API Sanitizer: How to find bugs?
LEC 13: Wen Xu, Exploit Linux UAF
Dec 4 Dec 5
Last day of classes
Dec 6 Dec 7
Final exam week
(No final!)
Dec 8
Final exam week
(No final!)
Dec 11
Final exam week
(No final!)
Dec 12
Final exam week
(No final!)
Dec 13
Final exam week
(No final!)
Dec 14
Final exam week
(No final!)
Dec 15