hiddendata challenge 1
Hiddendata challenge 2
Exploit challenge 1

Intended to show the very basics of overflowing a buffer and altering execution.
Exploit challenge 2

Intended to expand overflowing, and display control of the buffer sent.
Exploit challenge 3

Another simple overflow example. This time, understanding and control of pointers must be exercised.
Exploit 2 - cleanup, merge old branch
exploit 1 - struct reorder
Exploit challenge 4

Mixing everything together, and then adding in creating shellcode.
Either by hand written instructions, or redirecting execution
past the final exit, and having your stack setup properly.