What you should do at home:
- Repeat the same lab with stack canaries and PIE turned back on.
- Compare behavior with and without optimization (-O0 vs -O2).
- Practice on a stripped copy of the same binary using only disassembly and runtime observation.
- Learn the calling convention more deeply and track arguments across library calls.
- Introduce radare2, Ghidra, or Binary Ninja later as a complement to runtime debugging.
Created: Sunday, March 8, 2026