The Modern Defense Stack
- In Class 03—05 we saw classic stack smashing: overwrite a return address, jump to shellcode on the stack.
- Modern systems break that in two independent ways:
- NX (No-eXecute / DEP): the stack and heap are not executable. Injected shellcode simply will not run.
- ASLR: the addresses of the stack, heap, and shared libraries (libc) are randomized on every run. You do not know where anything is.
- A single memory-corruption bug rarely buys you a shell anymore. You must chain primitives.
Key Takeaway
Real exploits are pipelines: first defeat ASLR, then hijack control flow. We study the chain to understand how to break it.