Learning Objectives
- Understand how address-space layout randomization protects software from memory corruption attacks.
- Learn how software prefetchers pose a security risk by revealing which pages are present in the address space.
- Leverage speculative execution once again to probe the address space to learn which pages are present.
- Understand buffer overflows/ code reuse attacks and implement a return-oriented programming attack from assembly instruction gadgets.
- Combine software and hardware attacks to defeat a victim binary using a return oriented programming attack with ASLR defeated via hardware techniques.