bueno, ya todo debería estar bien pero sigue sin ejecutarse la shellcode. Se me ocurre que puede haber varias razones, por ejemplo:
¿no deberian darse permisos de ejecución (en el programa vulnerable en el que se va a hacer el overflow), a la región donde se encuentra el buffer que va a ser explotado?
y otra que tambien podría ser es desactivar la protecciòn de g++ contra el buffer overflow. he visto en la web que utilizaba la opción.
g++ -fstack-protector
pero me da un error de que no reconoce esa opción.