Userland binary exploitation: heap, shellcoding, SROP, and classic CTF pwn.