This is awesome, it reminds me of the security course I took in school where we had to smash stacks and hunt for various buffer overflow exploits. It was one of my favorite classes, but also one of the most difficult!
To me this is one of the most impressive fields of CS/Software Engineering because of the skill required to understand and exploit full systems. Even though I'm a software dev, reading this makes me feel very humbled and shows how little I actually know.
Thanks for the read!
This is based off the below link which was posted in another comment. Much more informative than the github repo imo. http://crack.bargains/02r0.pdf