Skip to content

Vulnerability Research

← All courses

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.

Start the courseSelf-paced · no account needed
IntermediateSystems Foundations or equivalent
Self-pacedSix sections
Hands-onLessons, checkpoints, and labs

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.

  1. 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.

    2 lessons · 2 guides · Available
  2. 02

    Stack Smashing

    Learn how functions use the stack, overflow a buffer, redirect execution, and write a small payload in assembly.

    7 lessons · 2 labs · Available
  3. 03

    Mitigations

    Work through stack canaries, NX, code reuse, ASLR, and CFI, including where each protection stops an attack and where it doesn't.

    7 lessons · 4 labs · Available
  4. 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.

    8 lessons · 3 labs · Available
  5. 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.

    6 lessons · 2 labs · Available
  6. 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.

    1 guide · 5 challenges · Available