Week | Date | Class | Topic | Readings/Notes | Assignment/Solutions |
1 | M 08/24 | Lecture 1 | C Programming Review | AOE: 0x230,0x240,0x260 | HW 1 |
W 08/26 | Lecture 2 | Data Types and Program Memory Layout | AOE: 0x270 | ||
R 08/27 | Lab 1 | |
|||
2 | M 08/31 | Lecture 3 | Dissasembling a Program | AOE: 0x250 WikiBook: x86 Dissambly/Functions and Stack Frames |
HW 2 DUE 9 Sept |
W 09/02 | Lecture 4 | Stack Frame Management in Assembly | |||
R 09/03 | Lab 2 | |
|||
3 | T 09/08 | Lecture 5 | Memory References, Jumps/Loops, and Function Calls | HW 3 | |
W 09/09 | Lecture 6 | Tracing a Program with GDB | GDB Quick Reference | ||
R 09/10 | Lab 3 | |
|||
4 | M 09/14 | Lecture 7 | Smashing the Stack for Fun and Profit | AOE: 0x310, 0x320 Alef One |
HW 4 |
W 09/16 | Lecture 8 | Shell Code and x86 System Calls | AOE: 0x510, 0x520, 0x530 |
Summary 1: English Shell Code |
|
R 09/17 | Lab 4 | |
|||
5 | M 09/21 | Lecture 9 | Shell Code in x86 | Internet Archive of Basic Shellcode Example | HW 5 |
W 09/23 | Lecture 10 | Making Shell Code Exploit Ready | Summary 1 Due | ||
R 09/24 | Lab 5 | |
|||
6 | M 09/28 | -- | Catchup and Review | ||
W 09/30 | -- | Written Exam | Written Exam Solution |
||
R 10/01 | -- | Practicum |
LAB ASSESSMENT POINT Labs 1-4 |
||
7 | M 10/05 | Lecture 11 | Stack Smashing with Shell Code | HW 06 | |
W 10/07 | Lecture 12 | Small Shell Code | The shellcode repository | ||
R 10/08 | Lab 6 | |
|||
8 | M 10/12 | No Class | Columbus Day | ||
W 10/14 | Lecture 13 | Decode and Egg Hunt Shell Code | Safely Searching Process Virtual Address Space nologon.org |
HW 07 | |
R 10/15 | Lab 7 | |
|||
9 | M 10/19 | Lecture 14 | Socket Programming and Remote Shells | AOE: 0x540 | HW 08 Due 28 Oct |
W 10/21 | Lecture 15 | Socket Programming in Assembly | |||
R 10/22 | Lab 8 | |
|||
10 | M 10/26 | Lecture 16 | Address Space Layout Randomization | HW 09 | |
W 10/28 | Lecture 17 | Defeating ASLR by Bouncing and Basing | AOE: 0x6c0 | Summary 2: On the Effectiveness of Address Space Layer Randomization | |
R 10/29 | Lab 9 | |
|||
11 | M 11/02 | -- | Catchup/Review | ||
W 11/04 | -- | Written Exam | |||
R 11/05 | -- | Practicum |
LAB ASSESSMENT POINT Labs 1-8 |
||
12 | M 11/09 | Lecture 18 | Stack Canaries | HW 10 Summary 2 due Summary 3: StackGuard: Automatic Adaptive Detection and Prevention of Buffer Overlow Attacks |
|
W 11/11 | No Class | Veterans Day | |||
R 11/12 | Lab 10 | |
|||
13 | M 11/16 | Lecture 19 | Format String Attacks I | AOE 0x350 | HW 11 |
W 11/18 | Lecture 20 | Format String Attacks II | Syracuse Lecture Notes scut / team teso |
||
R 11/19 | Lab 11 | |
|||
14 | M 11/23 | Lecture 21 | Format String Attacks III | ||
W 11/25 | -- | Lab Work Day | Summary 3: Due | ||
R 11/26 | No Lab | Thanksgiving |
|||
15 | M 11/30 | Lecture 22 | Return to Lib C | HW 12 | |
W 12/02 | Lecture 23 | Return Oriented Programming 1 | Summary 4: The Geometry of Innocent Flesh on the Bone |
||
R 12/03 | Lab 12 | |
|||
16 | M 12/07 | Lecture 24 | Return Oriented Programming 2 | ||
W 12/09 | -- | Lab Work Day | Summary 4 Due | ||
R 12/10 | -- | Final Practicum |
|||
17 | 12/19 | -- | Final Exam @ 755 | ||
12/22 | -- | LABS FINAL ASSESSMENT Labs 1-12 |