====== Memory Corruption Tutorial ======
===== Preface =====
* [[.about:tutorial|About this tutorial]]
* [[.about:author|About the author]]
===== Background Knowledge =====
* [[.background:memory|Memory types]]
* [[.background:exec|Program execution details]]
===== Exploitation Techniques =====
* [[.exploitation:basic|Basic concepts of buffer overflows]]
* [[.exploitation:nop-sled|NOP sled]]
* [[.exploitation:external-buffers|Environment variable and command line argument buffers]]
* [[.exploitation:rop|Return-oriented programming (ROP)]]
===== Protection Mechanisms =====
* [[.protection:stdlib|Dangerous standard library functions and safer alternatives]]
* [[.protection:ascii-armor|ASCII-armored addresses]]
* [[.protection:stack-protection|Stack protection]]
* [[.protection:aslr|Address Space Layout Randomization (ASLR)]]
* [[.protection:pie|Position-independent Executable (PIE)]]
* [[.protection:nx|NX bit]]
* [[.protection:cfi|Control-flow Integrity (CFI)]]
* [[.protection:static-analysis|Static code analysis]]
===== Discussion =====
* [[https://www.proggen.org/forum/viewtopic.php?f=39&t=7015|General discussion about this tutorial]]
===== License =====

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.