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
Aug 25
First day of the class
Aug 26
LEC 1: Course Intro & Preliminary Rev. Engineering #1 lec01.pptx
Preparation: What really happened on Mars Rover Pathfinder?
Preparation: Nearly 3 Years Later, SolarWinds CISO Shares 3 Lessons From the Infamous Attack
Aug 27 Aug 28
LEC 2: Code compilation and binary generation; system architecture basic; calling conventions and binary ABI lec01-x86-assembly.pptx lec01-tools.pptx
Preparation: Smashing The Stack For Fun And Profit
Resource: x86 Assembly Guide
Resource: Intel Code Table
Resource: Assembly-HOWTO
Resource: Intel vs AT&T format
Resource: Linux assemblers: A comparison of GAS and NASM
Aug 29
Sep 1 Sep 2
LEC 3: x86 assembly I; intro to debugging & reversing toolchains
Resource: Intel® 64 and IA-32 Architectures Software Developer’s Manual
Resource: x86 and amd64 instruction reference
Resource: GDB tutorials gdb1, gdb2
Resource: pwndbg, gef
Resource: List of useful tools for the class
Resource: GNU Make Manual
Resource: Intel vs. AT&T syntax
Assigned: Unit 1
Sep 3 Sep 4
LEC 4: x86 assembly II; calling conventions; data encoding
Preparation: Read Where the top of the stack is on x86
Preparation: Read Stack frame layout on x86-64
Resource: Radare2 resources
Resource: how debugger works (part1) (part2) (part3)
Sep 5
Sep 8 Sep 9
LEC 5: Basic system and binary attacks; ELF format; loading and dynamic linking programs PPTX
Resource: ELF loading and linking
Sep 10 Sep 11
LEC 6: x86 shellcoding; how system call works; basic system defenses
DUE: Unit 1
Assigned: Unit 2
Sep 12
Sep 15 Sep 16
LEC 7: Program loading and process instantiation
Preparation: Read Anatomy of a system call Part1, Part2
Resource: shellcoding tutorial
Resource: shellcode-template.tar.bz2
Resource: Shellcodes database
Resource: Online assembler/disassembler
Resource: Inline assembly
Resource: shellcode-template-arm.tar.bz2
Sep 17 Sep 18
LEC 8: Code hijacking attacks I; stack overflow attack; shellcoding attack
Sep 19
Sep 22 Sep 23
LEC 9: Code hijacking attacks II; system mitigations
DUE: Unit2
Assigned: Unit3
Sep 24 Sep 25
LEC 10: Code encoding and binary disassmebly challenges
Resource: ARM architecture reference manual
Resource: ARMv7 cheatsheet
Resource: ARM reference
Resource: ARM thumb
Sep 26
Sep 29 Sep 30
LEC 11: System security mitigation
Resource: Linux mov is Turing-complete
Oct 1 Oct 2
LEC 12: ASLR defenses; ROP attacks and defenses
Resource: Weird Machine
Resource: The Anatomy of an Executable, The ELF Object File Format by Dissection
Resource: Linux x86 Program Start Up
Resource: How to get run ELF binary, How programs get run
Resource: Anatomy of a Program in Memory
Oct 3
Oct 6 Oct 7
LEC 13: ROP and Format String attacks
DUE: Unit3
Resource: Reflection on Trusting Trust
Resource: Running the “Reflections on Trusting Trust” Compiler
Oct 8 Oct 9
LEC 14: Binary Instrumentation with PIN
TUT 1: inscounts example tutorial
Resource: LiveOverflow: Global Offset Table (GOT) and Procedure Linkage Table (PLT) - bin 0x12
Resource: Read Pin - A Dynamic Binary Instrumentation Tool
Resource: Pintool tutorial
Resource: PIN User guide
Resource: inscounts.tar.gz
Oct 10
Oct 13
Mid-term week
Oct 14
Mid-term week
Oct 15
Mid-term week
Oct 16
Mid-term week
Oct 17
Mid-term week
Oct 20 Oct 21
LEC 15: HDL Bytecodes
Oct 22 Oct 23
LEC 16: PYC decompilation challenges
Resource: libdft
Oct 24
Oct 27 Oct 28
LEC 17: Virtualization and code instrumentation
Oct 29 Oct 30
LEC 18: Code emulation and light-weighted virtualization
Oct 31
Nov 3 Nov 4
LEC 19: Latest development on system security defenses
Nov 5 Nov 6
LEC 20: Secure enclaves, CFI, shadow stacks
Nov 7
Nov 10 Nov 11
LEC 21: Binary instrumentation and binary translators I
Resource: libdft
Resource: SoK: Using Dynamic Binary Instrumentation for Security
Nov 12 Nov 13
LEC 22: Binary instrumentation and binary translators II
Nov 14
Nov 17 Nov 18
LEC 23: Advanced topic I -- Computing in Space
Nov 19 Nov 20
LEC 24: Advanced topic II -- Computing in Space
Nov 21
Nov 24
Thanks giving
Nov 25
Thanks giving
Nov 26
Thanks giving
Nov 27
Thanks giving
Nov 28
Thanks giving
Dec 1 Dec 2
LEC 25: Advanced topic III -- Graph analysis for Cybersecurity; Provenace-based ML detectors
Dec 3 Dec 4
LEC 26: Class overview and summary (Last day of class)
Dec 5