1: Memory & Control - Expanded Projects
Goal: Build a deep, practical model of memory and control flow in C by completing six real-world projects that expose stack/heap behavior, safe APIs, memory debugging, and exploitation defenses.
Project Index
| # | Project | Core Topics | Difficulty | Time |
|---|---|---|---|---|
| 1 | Memory Inspector Tool | Virtual memory, /proc, pointer formatting |
Intermediate | 8-12 hrs |
| 2 | Safe String Library | C strings, invariants, bounds checking | Intermediate | 10-16 hrs |
| 3 | Memory Leak Detector | Ownership, tracking, leak reports | Intermediate | 12-20 hrs |
| 4 | Arena Allocator | mmap, alignment, bump allocation |
Intermediate | 10-16 hrs |
| 5 | Exploit Lab (Buffer Overflow) | Stack layout, mitigations, deterministic lab | Advanced | 15-25 hrs |
| 6 | Mini Text Editor (Capstone) | TUI input, gap buffer, undo/redo | Advanced | 20-40 hrs |
Recommended Learning Path
- Memory Inspector Tool: See real addresses and regions.
- Safe String Library: Design safe APIs in C.
- Arena Allocator: Build fast allocation primitives.
- Memory Leak Detector: Make ownership visible.
- Exploit Lab: Understand how memory bugs become control-flow bugs.
- Mini Text Editor: Integrate everything into a real system.
Why This Sprint Matters
Memory mastery is what separates “I can write C” from “I can debug C in production.” These projects teach you how memory actually behaves, how bugs happen, and how to design safer systems even when the language is unsafe.
Essential Books
- “Computer Systems: A Programmer’s Perspective” (Bryant & O’Hallaron)
- “Effective C” (Seacord)
- “Expert C Programming” (van der Linden)
- “Advanced Programming in the UNIX Environment” (Stevens)
Total Estimated Time: 4-6 weeks of focused practice