A course that provides an in-depth understanding of finding flaws in Linux and software within embedded devices, as well as how to exploit and protect them. The course is offensive-focused, but also discusses mitigations to protect programs. The prerequisites include familiarity with Linux, x86_64 assembly language, and programming in C and Python. The course is hands-on, requiring a 64-bit x86-based computer running the operating system of choice and VMWare Workstation or Fusion.
The repository is for personal use and will contain all the code for the homework assignments of the ENPM809V course. The code will consist of practical exercises related to finding flaws in Linux and software within embedded devices, exploiting them, and implementing mitigations. The repository will be organized by homework assignments and the final project, with each assignment containing commented code explaining the concepts applied.
WEEK | TOPIC |
---|---|
1 | Course Introduction |
2 | x86_64 Architecture Review & ROP |
3 | Heap Based Exploits |
4 | Sandboxing |
5 | Race Conditions |
6 | Injection |
7 | Linux User Mode Hijcaking |
8 | Linux Kernel Internals |
9 | Spring Break |
10 | Linux Kernel Internals |
11 | Kernel Internals/Systems Hijacking |
12 | Linux Kernel System Hijacking |
13 | Linux Kernel System Hijacking |
14 | Security Issues in Embedded Systems |
15 | Security Issues in Embedded Systems Pt 2 |
16 | Final Exam |