Enfim...
Apenas p'ra enfatizar o assunto, e deixar uma observação...
A melhor maneira de aprender a escrever um Exploit, é entendê-lo.
Leia o código, aprenda a Linguagem, aprenda a Codificação, e os Algoritmos.
Questione a vulnerabilidade, e onde o Bug falha.
Dominando a linguagem C, ou outra Linguagem (i/ Assembly)...
você conseguirá criar seus proprios exploits, e shellcodes.
Dica - Exploits e Shellcodes:
http://khun.zapto.org:8000