Quiero hacer algunos experimentos con desbordamientos de búfer en mis diversas máquinas virtuales, que incluyen (pero no se limitan a) Debian 6, Ubuntu 12.04, Fedora 16, pero cada vez que intento ejecutar el exploit de desbordamiento de búfer recibo el siguiente mensaje:
stack smashing detected (core dumped)
Después de hacer mi investigación, leí que es una característica llamada protección de desbordamiento de búfer implementada en el compilador. GCC, por ejemplo, usa GCC Stack-Smashing Protector (ProPolice) , Clang / LLVM usa dos detectores de desbordamiento de búfer, SafeCode y AddressSanitizer .
Mi pregunta es: dado que realmente quiero ver los ataques de desbordamiento del búfer en mis máquinas, ¿hay alguna forma (un indicador de compilación, tal vez? Un archivo de configuración de Linux?) Para desactivar la protección de desbordamiento del búfer?
__stack_chk_fail
(por ejemplo,strings /bin/mybinary | grep __stack_chk_fail
-fno-stack-protector-all
no se reconoce (-fstack-protector
,-fstack-protector-all
y-fno-stack-protector
son reconocidos)gcc: error: unrecognized command line option ‘-fno-stack-protector-all’; did you mean ‘-fstack-protector-all’?