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