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.
| Monday | Tuesday | Wednesday | Thursday | 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 |