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 19
MLK Day
Jan 20
LEC 1: Intro & Preliminary Rev. Engineering #1 U1.pptx U1-data-encoding.pptx
Preparation: Working with SSH Servers, Clients, and Keys
Preparation: intel_asm at&t_asm
Preparation: gdb1 gdb2
Resource: The Missing Semester of Your CS Education
Assigned: Unit 1
First day of class
Jan 21 Jan 22
LEC 2: Preliminary Reverse Engineering #2 U1-x86-assembly.pptx
TUT 1: gdb gdb commands
Preparation: intelCodeTable
Preparation: How debugger works (part1) (part2) (part3)
Resource: x86 instruction set reference
Resource: AT&T vs. Intel Syntax 1
Resource: AT&T vs. Intel Syntax 2
Resource: Signed Binary
Resource: Mark Watney's ASCII
Resource: pwntools template ex.py
Jan 23
Jan 26 Jan 27
LEC 3: Winter storm break (remote/virtual class via Teams)
TUT 2: tutorial level0
TUT 3: tutorial #1-1 TXT
TUT 4: tutorial #2 TXT
Resource: UTF8-history.txt
Resource: unicode and character sets
Resource: unicode and character sets in 2023
Jan 28 Jan 29
LEC 4: Winter storm break II U2.pptx
TUT 5: pwntool tutorial pwntools.md or link
Preparation: Read Phrack #49-14
Preparation: Read Where the top of the stack is on x86
Preparation: Read Stack frame layout on x86-64
Preparation: READ Pwntools
Jan 30
Feb 2 Feb 3
LEC 5: Buffer overflow #1
DUE: Unit 1
Assigned: Unit 2
Feb 4 Feb 5
LEC 6: Buffer overflow #2
Preparation: Read Core dump
Feb 6
Feb 9 Feb 10
LEC 7: Frame-pointer attack
Feb 11 Feb 12
LEC 8: Writing Shellcode #1 U3.pptx
TUT 6: shellcode template shellcode-template
TUT 7: tutorial how to shellcode
TUT 8: shellcode 32/64-bit shellcodes with zeros
TUT 9: tutorial 64-bit with zeros
Preparation: Anatomy of a system call Part1 Part2
DUE: Unit 2
Resource: Linux System Call Table (x86/IA32)
Resource: Linux System Call Table (x86_64/AMD64)
Resource: Shellcodes database
Resource: Online assembler/disassembler
Assigned: Unit3-Part1
Feb 13
Feb 16 Feb 17
LEC 9: Writing Shellcode #2
TUT 10: tutorial nonzero 64-bit
TUT 11: tutorial sc-bof-challenges
Preparation: How programs get run
Preparation: How programs get run: ELF binaries
Preparation: About ELF Auxiliary Vectors
Preparation: Linux x86 Program Start Up
Feb 18 Feb 19
LEC 10: Writing Shellcode #3 U3P2.pptx
Resource: byte or short instructions
Resource: X86 Opcode and Instruction Reference
Resource: AMD64 Opcode and Instruction Reference
Assigned: Unit3-Part2
Feb 20
Feb 23 Feb 24
LEC 11: Writing Shellcode #4
DUE: Unit3-Part1
Feb 25 Feb 26
LEC 12: ASCII shellcode challenge, press-f, and some tips for writing shellcode buffer overflow
Feb 27
Mar 2 Mar 3
LEC 13: Intro to system defenses; Stack Cookie, DEP, and ASLR U4.pptx
Preparation: READ SoftBound
Preparation: READ StackGuard
DUE: Unit3-Part2
Assigned: Unit4
Mar 4 Mar 5
LEC 14: More on system defenses
Preparation: READ Address Space Randomization (ASLR)
Mar 6
Mar 9 Mar 10
LEC 15: More on ASLR
Preparation: READ PIC in shared libraries
Mar 11 Mar 12
LEC 16: Return-oriented Programming 1
DUE: Unit 4
Assigned: Unit 5
Mar 13
Mar 16
Spring break
Mar 17
Spring break
Mar 18
Spring break
Mar 19
Spring break
Mar 20
Spring break
Mar 23 Mar 24
LEC 17: Return-oriented Programming 2 / Advanced Return-oriented Programming
Mar 25 Mar 26
LEC 18: Advanced Return-oriented Programming
DUE: Unit 5
Assigned: Unit 6
Mar 27
Mar 30 Mar 31
LEC 19: Arbitrary read/write and Format Strings 1
Apr 1 Apr 2
LEC 20: Arbitrary read/write and Format Strings 2
Apr 3
Apr 6 Apr 7
LEC 21: Defenses Against AR and AW
Apr 8 Apr 9
LEC 22: (Advanced Topic) Python Runtime Internals
DUE: Unit 6
Assigned: Unit 7
Apr 10
Apr 13 Apr 14
LEC 23: Advanced Topic 1
Apr 15 Apr 16
LEC 24: Advanced Topic 2
Apr 17
Apr 20 Apr 21
LEC 25: Advanced Topic 3
DUE: Unit 7
Assigned: Unit 8
Apr 22 Apr 23
LEC 26: Heap Intro
Apr 24
Apr 27 Apr 28
LEC 27: More on Heap
Apr 29 Apr 30
LEC 28: Heap Exploits; Past problems review
DUE: Unit 8
May 1
May 4 May 5
LEC 29: Last class, In-class CTF intro
Assigned: In-class CTF
May 6 May 7 May 8