[HACK] buffer overflows & gcc
ciberjacobo
ciberjacobo at pascal.jepsi.net
Sat Feb 19 14:18:16 CET 2005
Buenas,
El otro día leyendo un artículo de la revista phrack [1] llamado
"The Frame Pointer Overwrite" habla de los desbordamientos de buffer
por 1 byte (off-by-one) donde se da la situación que en la pila
hay un buffer de 256 bytes justo arriba del %ebp y un error
del programador "for (i=0; i<= 256; i++)"
^^
permite sobrescribir con valores triviales el byte más bajo del
registro ebp apilado. El artículo que comento fue escrito en 1999.
Me decidí a probar dicha técnica y me di cuenta que el gcc deja 2
palabras "de margen" entre el buffer y el (ebp, eip) tanto en la
versión 3.3 que en la 2.95. Probé varios tamaños de buffer: 256, 257,
254,250... pero siempre deja 2 palabras de margen.
Por fin mi pregunta:
¿Sabe alguién si a partir de cierta versión del GCC el compilador
deja "márgenes" en la pila entre las variables locales y los registros
para evitar errores de este tipo?
Saludos.
Referencias:
[1] http://www.phrack.org/phrack/55/P55-08
--
Jacobo Avariento Gimeno
_________________________________________________
| WebSite: http://ciberjacobo.com |
| GPG/OpenPGP key: http://ciberjacobo.com/key.asc |
| JID: jack at im.jepsi.org |
| IRC: irc.irc-euro.org @ #jepsi |
|_________________________________________________|
More information about the hacking
mailing list