Vulnerability Research
Software security · Course 2
Vulnerability Research
Take apart small vulnerable C programs with GDB. You'll trigger bugs, follow the program state, work out what control each bug gives you, write exploits, and see how modern mitigations get in the way.
Your learning path
What you'll investigate
We start with the stack, then move through common bug classes, the heap, and the mitigations that change which attacks still work. Each section adds lessons, labs, or challenges that use what came before.
- 01
Start Here
Check the prerequisites, set up the course VM, learn how the labs work, and understand which targets you have permission to test.
- 02
Stack Smashing
Learn how functions use the stack, overflow a buffer, redirect execution, and write a small payload in assembly.
- 03
Mitigations
Work through stack canaries, NX, code reuse, ASLR, and CFI, including where each protection stops an attack and where it doesn't.
- 04
Bug Classes and Primitives
Compare access-control mistakes, out-of-bounds access, integer errors, format strings, use-after-free, type confusion, and race conditions.
- 05
The Heap
Learn how one allocator lays out and reuses chunks, then use that model to understand use-after-free, overflows, and allocator attacks.
- 06
Challenges
Put the earlier sections together against course-provided targets. You get a goal and the program; choosing the route is up to you.