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 20 Jan 21
LEC 1: Intro & Preliminary Rev. Engineering #1 U1.pptx
Preparation: Read intel_asm at&t_asm Read gdb1 gdb2
Preparation: Working with SSH Servers, Clients, and Keys
Resource: The Missing Semester of Your CS Education
Assigned: Unit 1
First day of class
Jan 22 Jan 23
LEC 2: Preliminary Reverse Engineering #2 U1-x86-assembly.pptx
Preparation: intelCodeTable
Preparation: How debugger works (part1) (part2) (part3)
Resource: x86 instruction set reference
Resource: RC files .vimrc .gdbinit .pythonrc.py .tmux.conf
Resource: AT&T vs. Intel Syntax 1
Resource: AT&T vs. Intel Syntax 2
Jan 24
Jan 27 Jan 28
LEC 3: Preliminary Reverse Engineering #3 U1-data-encoding.pptx
TUT 1: tutorial level0
TUT 2: tutorial level6
Preparation: UTF8-history.txt
Resource: unicode and character sets
Resource: unicode and character sets in 2023
Resource: Signed Binary
Resource: Mark Watney's ASCII
Jan 29 Jan 30
LEC 4: Buffer overflow #1 U2.pptx
TUT 3: 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
DUE: Unit 1
Resource: pwntools template ex.py
Assigned: Unit 2
Jan 31
Feb 3 Feb 4
LEC 5: Buffer overflow #2 U2-pwntools.pptx
TUT 4: gdb gdb commands
TUT 5: tutorial #2-0 tut-bof-level0
TUT 6: tutorial #2-2 tut-bof-level2
TUT 7: tutorial #2-5 tut-bof-level5
Feb 5 Feb 6
LEC 6: Frame-pointer attack
TUT 8: gdb-intro
TUT 9: gdb-coredump
TUT 10: pwntools pwntools-tut
Preparation: Read Core dump
Feb 7
Feb 10 Feb 11
LEC 7: Writing Shellcode #1 U3.pptx
TUT 11: shellcode template shellcode-template
TUT 12: shellcode 32/64-bit shellcodes with zeros
TUT 13: nonzero-shellcode 64-bit Non-zero
DUE: Unit 2
Resource: Shellcodes database
Resource: Online assembler/disassembler
Assigned: Unit3-Part1
Feb 12 Feb 13
LEC 8: Writing Shellcode #2
Resource: Anatomy of a system call Part1 Part2
Resource: Linux System Call Table (x86/IA32)
Resource: Linux System Call Table (x86_64/AMD64)
Feb 14
Feb 17 Feb 18
LEC 9: Writing Shellcode #3
TUT 14: tutorial nonzero 64-bit
TUT 15: tutorial sc-bof-challenges
TUT 16: tutorial md online
TUT 17: tutorial 64-bit with zeros
Preparation: How programs get run
Preparation: How programs get run: ELF binaries
Preparation: READ About ELF Auxiliary Vectors
Preparation: READ Linux x86 Program Start Up
Assigned: Unit3-Part2
Feb 19 Feb 20
LEC 10: Writing Shellcode #4 U3P2.pptx
DUE: Unit3-Part1
Resource: one byte or short instructions
Resource: X86 Opcode and Instruction Reference
Resource: AMD64 Opcode and Instruction Reference
Resource: READ ASCII ASCII-2
Resource: READ Alpha-numeric Alpha-numeric-2
Feb 21
Feb 24 Feb 25
LEC 11: ASCII and Alpha-numeric shellcode challenges
Feb 26 Feb 27
LEC 12: Intro to system defenses; Stack Cookie, DEP, and ASLR U4.pptx
Preparation: READ SoftBound
Preparation: READ StackGuard
Preparation: Virtgual-Address-Translation
Feb 28
Mar 3 Mar 4
LEC 13: ASLR and bypasses + Some tips for ASLR, Stack Cookie, and DEP
Preparation: READ Address Space Randomization (ASLR)
Preparation: READ Just-in-Time Code Resuse
DUE: Unit3-Part2
Assigned: Unit4
Mar 5 Mar 6
LEC 14: Some tips for ASLR, Stack Cookie, and DEP
Mar 7
Mar 10 Mar 11
LEC 15: Some tips for ASLR, Stack Cookie, and DEP
TUT 18: cookie-1
TUT 19: DEP-2
TUT 20: aslr-2
TUT 21: aslr-3
TUT 22: tutorials execve
Preparation: READ PIC in shared libraries
Mar 12 Mar 13
LEC 16: Return-oriented Programming 1 U5.pptx
Preparation: Read ROP
DUE: Unit 4 (extended to Mar 18 Midnight)
Assigned: Unit 5
Mar 14
Mar 17
Spring break
Mar 18
Spring break
Mar 19
Spring break
Mar 20
Spring break
Mar 21
Spring break
Mar 24 Mar 25
LEC 17: Return-oriented Programming 2 / Advanced Return-oriented Programming
Preparation: READ ROP
Preparation: Read How does the Linux kernel run a program
Mar 26 Mar 27
LEC 18: (Advanced Topic) Python Runtime Internals pyc-decompilation.pptx
Assigned: PYC Decompilation
Mar 28
Mar 31 Apr 1
LEC 19: PYC Decompilation I
DUE: Unit 5
Apr 2 Apr 3
LEC 20: PYC Decompilation II
Apr 4
Apr 7 Apr 8
LEC 21: PYC Decompilation III
Apr 9 Apr 10
LEC 22: Arbitrary read/write and Format Strings 1 U6.pptx
DUE: PYC Decompilation
Assigned: Unit 6
Apr 11
Apr 14 Apr 15
LEC 23: Arbitrary read/write and Format Strings 2
TUT 23: tutorial SR-1-PY
TUT 24: tutorial AR-1-PY
TUT 25: tutorial AW-1-PY
Apr 16 Apr 17
LEC 24: Defenses Against AR and AW
TUT 26: tutorial FS-AW-64-PY
TUT 27: tutorial exploit-b-fs-write.py
TUT 28: tutorial exploit-c-fs-code.py
TUT 29: tutorial code-32-PY
Apr 18
Apr 21 Apr 22
LEC 25: Heap Overflow Intro U8.pptx
DUE: Unit 6
Assigned: Unit 8
Apr 23 Apr 24
LEC 26: More on Heap Overflow U8L2.pptx
Apr 25
Apr 28 Apr 29
LEC 27: Past problems review I, advanced System Security Defenses -- ShadowStack, CFI, and other defenses
Apr 30 May 1
LEC 28: Last class, In-class CTF intro
Assigned: In-class CTF
May 2
May 5 May 6
LEC 29: No class
DUE: Unit 8
May 7 May 8 May 9
The last day of class