Return Oriented Programming
Nathaniel Kerr
The Basics - What is ret?
The Basics - exploiting ret
Using Gadgets
LIBC and the GOT
Using external functions
What and where is libc?
libc is the C standard library - it defines functions like printf(), fgets(), and strcpy()
ELFs do not include the entire function - libc (all of it) is loaded into memory at runtime and linked in with the PLT and GOT
PLT and GOT
Return to libc - Ret2libc
Mitigations