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
Jan 16
MLK Day
Jan 17
LEC 1: Intro & Preliminary Rev. Engineering #1 PPTX
Preparation: Read intel_asm at&t_asm Read gdb1 gdb2
Resource: how debugger works (part1)
Resource: how debugger works (part2)
Resource: how debugger works (part3)
Assigned: Unit 1
First day of class
Jan 18 Jan 19
LEC 2: Preliminary Reverse Engineering #2 PPTX
Preparation: intelCodeTable
Jan 20
Jan 23 Jan 24
LEC 3: Preliminary Reverse Engineering #3 PPTX
Jan 25 Jan 26
LEC 4: Buffer overflow #1 PPTX
TUT 1: tutorial pwntools.md or link
TUT 2: tutorial #2-0 bof-level0
Preparation: Read Where the top of the stack is on x86
Preparation: Read Stack frame layout on x86-64
Preparation: Read Phrack #49-14
DUE: Unit 1
Assigned: Unit 2
Jan 27
Jan 30 Jan 31
School closing
Feb 1 Feb 2
LEC 5: Buffer overflow #2
Preparation: READ Pwntools
Preparation: READ About ELF Auxiliary Vectors
Feb 3
Feb 6 Feb 7
LEC 6: Frame-pointer attack, core dump analysis
Preparation: Read ELF
Preparation: Read Core dump
Feb 8 Feb 9
LEC 7: Writing Shellcode #1
Preparation: Read ELF
DUE: Unit 2
Resource: Shellcodes database
Resource: Online assembler/disassembler
Assigned: inclass3
Feb 10
Feb 13 Feb 14
LEC 8: Writing Shellcode #2 PPTX
Preparation: READ ASCII ASCII-2
Preparation: READ Alpha-numeric Alpha-numeric-2
DUE: shellcode-{32,64}
Resource: one byte or short instructions
Assigned: Unit3
Feb 15 Feb 16
LEC 9: Writing Shellcode #3
Preparation: READ How programs get run: ELF binaries
Preparation: READ Linux x86 Program Start Up
Resource: ASCII Table
Feb 17
Feb 20 Feb 21
LEC 10: Writing Shellcode #4, Intro to Stack Cookie and DEP
Resource: AT&T vs. Intel Syntax 1
Resource: AT&T vs. Intel Syntax 2
Feb 22 Feb 23
LEC 11: Stack Cookie and DEP
Preparation: READ SoftBound
Preparation: READ StackGuard
DUE: Unit 3 + inclass{3,4} (rest)
Assigned: Unit 4
Feb 24
Feb 27 Feb 28
LEC 12: ASLR and bypasses + Some tips for ASLR, Stack Cookie, and DEP
Preparation: READ Address Space Randomization (ASLR)
Preparation: READ ASLR Next Generation
Mar 1 Mar 2
LEC 13: Some tips for ASLR, Stack Cookie, and DEP
Preparation: READ PIC in shared libraries
Mar 3
Mar 6 Mar 7
LEC 14: Return-oriented Programming 1
Preparation: Read ROP
DUE: Unit 4
Assigned: Unit 5
Mar 8 Mar 9
LEC 15: Return-oriented Programming 2 / Advanced Return-oriented Programming
Preparation: READ ROP
Preparation: Read got/plt and PIC
Preparation: Read How does the Linux kernel run a program
Mar 10
Mar 13
Spring break
Mar 14
Spring break
Mar 15
Spring break
Mar 16
Spring break
Mar 17
Spring break
Mar 20
Midterm exam week
Mar 21
Midterm exam week
Mar 22
Midterm exam week
Mar 23
Midterm exam week
Mar 24
Midterm exam week
Mar 27 Mar 28
LEC 16: Arbitrary read/write and Format Strings 1
DUE: Unit 5
Resource: Linus vs. Tanenbaum
Assigned: Unit 6
Mar 29 Mar 30
LEC 17: Arbitrary read/write and Format Strings 2
Mar 31
Apr 3 Apr 4
LEC 18: Defenses Against AR and AW
Apr 5 Apr 6
LEC 19: Defenses against CFH, FSV. Heap Overflow Intro
Assigned: Unit 7
Apr 7
Apr 10 Apr 11
LEC 20: Heap Overflow Intro (Cont'd)
DUE: Unit 6
Apr 12 Apr 13
LEC 21: Heap Overflow II
Apr 14
Apr 17 Apr 18
LEC 22: Heap Overflow III
Apr 19 Apr 20
LEC 23: Heap Overflow IV
DUE: Unit 7
Assigned: Unit 8
Apr 21
Apr 24 Apr 25
LEC 24: Past problems review I, advanced System Security Defenses -- ShadowStack, CFI, and other defenses
Resource: CET by Intel
Apr 26 Apr 27
LEC 25: Past problems review II
Apr 28
May 1 May 2
LEC 26: Last class, In-class CTF intro
May 3 May 4 May 5
The last day of class