Estaba probando un programa simple en C con protección canaria apilada. Intenté eludir la protección sobrescribiendo la dirección de retorno de la función y sobrescribiendo la dirección principal. Lo estoy sobrescribiendo con la dirección de una función dentro del programa objetivo. Obtengo el siguiente resultado que me lleva a creer que es posible un ataque:
Detectóelsmash,peroparecequeintentósaltaralafuncióndedestino,quees"yo". Intenté manipular la dirección a la que intentaba acceder, pero no tuve suerte.
Mi pregunta es, ¿es posible una mayor explotación? ¿Está terminando como resultado de SIGSEGV (es decir, el acceso a 0x1010 ...) o la detección de canarios?
La idea surgió de este artículo
El programa: