2011-07-30 20 views
5

He estado leyendo un excelente libro Hacking de Jon Erickson. Quería compilar un ejemplo de desbordamiento de búfer y depurarlo, pero en lugar de escribir fuera del espacio asignado, la aplicación simplemente responde con 'Abortar trampa'. ¿Es esto alguna precaución de seguridad introducida por Xcode o Mac OS? El autor está usando raw gcc y Debian.Abortar trampa en lugar de desbordamiento de búfer

#include <stdio.h> 
#include <string.h> 

int main(int argc, char *argv[]) { 
    int value = 5; 
    char buffer_one[8], buffer_two[8]; 

    strcpy(buffer_one, "one"); /* put "one" into buffer_one */ 
    strcpy(buffer_two, "two"); /* put "two" into buffer_two */ 

    printf("[BEFORE] buffer_two is at %p and contains \'%s\'\n", buffer_two, buffer_two); 
    printf("[BEFORE] buffer_one is at %p and contains \'%s\'\n", buffer_one, buffer_one); 
    printf("[BEFORE] value is at %p and is %d (0x%08x)\n", &value, value, value); 

    printf("\n[STRCPY] copying %d bytes into buffer_two\n\n", strlen(argv[1])); 
    strcpy(buffer_two, argv[1]); /* copy first argument into buffer_two */ 

    printf("[AFTER] buffer_two is at %p and contains \'%s\'\n", buffer_two, buffer_two); 
    printf("[AFTER] buffer_one is at %p and contains \'%s\'\n", buffer_one, buffer_one); 
    printf("[AFTER] value is at %p and is %d (0x%08x)\n", &value, value, value); 
} 
+1

Tal vez los autores de compiladores también han leído el libro? :-) –

Respuesta

4

Esta es la protección de desbordamiento patadas en - aunque no estoy seguro acerca de XCode/OSX, con gcc puede pasar -fno-stack-protector y tener que apagar el ASLR

linux: sudo echo 0 > /proc/sys/kernel/randomize_va_space 

Este artículo ayuda Smashing the Stack in 2011

Debe ser capaz de descubrir cómo deshabilitar las protecciones para jugar con este código.

estoy leyendo el mismo libro por cierto - que he tenido que ajustar/google en torno a hacer algunas cosas relevantes para el año 2011.

+0

Gracias, y también tuve que agregar '-D_FORTIFY_SOURCE = 0' http://www.thexploit.com/secdev/turning-off-buffer-overflow-protections-in-gcc/. –

Cuestiones relacionadas