General Information
Instructor
TA
Overview
This course is designed to provide students with good understanding of the theories, principles, techniques and tools used for software and system hacking and hardening. Students will study, in-depth, binary reverse engineering, vulnerability classes, vulnerability analysis, exploit and shellcode development, defensive solutions, etc. to understand how to crack and protect native software. In particular, this class covers offensive techniques including stack-based buffer overflow, heap security, format string vulnerability, return-oriented programming, etc. This class also covers defensive techniques including canary, shadow stack, address space layout randomization, control-flow integrity, etc. A key part of studying security is putting skills to the test in practice. Hacking challenges known as Capture The Flag (CTF) competitions are a great way to do this. In this class the progress of students are evaluated by lab assignment and in-class Capture-The-Flag (CTF) competitions.
Downloads: Course Syllabus
Tentative Schedule
Date | Topic | Dues | |
---|---|---|---|
Week-1 Class-1 1/8 | Overview and Background Knowledge L1 Class Overview L2 Background Knowledge Hw Video | ||
Week-2 Class-1 1/15 | Buffer Overflow (Background and Local variables) L3 Buffer Overflow (Local Variables) L4 Buffer Overflow (Return address) Hw Video | Hw-1 | |
Week-3 Class-1 1/22 | Buffer Overflow L5 Buffer Overflow (Return to Shellcode) Video | Hw-2 | |
Week-4 Class-1 1/29 | Buffer Overflow L6 Buffer Overflow (Frame Pointer Attack) L7 Buffer Overflow (DEP, Shadow Stack, Stack Canary) Video | Hw-3 | |
Week-5 Class-1 2/5 | Buffer Overflow L8 ASLR and Seccomp Video | Hw-4 | |
Week-6 Class-1 2/12 | Shellcoding L9 Shellcoding Buffer Overflow (Real-world examples) L10 Buffer Overflow (Real-world Examples) Video | Hw-5 | |
Week-7 Class-1 2/19 | Shellcoding L9 Shellcoding Buffer Overflow (Real-world examples) L10 Buffer Overflow (Real-world Examples) Video | Hw-5 | |
Week-8 Class-1 2/26 | *** Midterm CTF *** Midterm | Hw-6 | |
Week-9 Class-1 3/5 | ============ Spring Break No class ============ | ||
Week-10 Class-1 3/12 | Format string vulnerability L11 Format String (Memory Read) Format string vulnerability L12 Format String (Memory Write) Hw Video | Hw-7, Hw-8 | |
Week-11 Class-1 3/19 | Return-oriented programming L13 Return-oriented Programming Hw Video | Hw-9 | |
Week-12 Class-1 3/26 | Heap exploitation Heap exploitation L14 Heap Exploitation Hw Video | Hw-10 | |
Week-13 Class-1 4/2 | Cache and cache side-channel | Hw-11 | |
Week-14 Class-1 4/9 | *** FinalCTF *** | Hw-12, Hw-13 |
Resources
GDB Cheat Sheet Tmux Cheet Sheet x64 Cheat Sheet x32 Cheat Sheet x32 Cheat Sheet ARM Cheat Sheet ARM Cheat Sheet 32-bit