Pufferüberlauf - Programm beendet mit signal SIGSEGV

Ich Lerne Pufferüberlauf ausnutzen. Ich schrieb eine verwundbare Programm wie diesem:

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

main(int argc, char *argv[])
{
    char buffer[80];
    strcpy(buffer, argv[1]);
    return 1;
}

Sehr einfaches Programm. Die Idee ist, die Rücksprungadresse zu überschreiben, die verwendet wird, um zurück zu der libc-Funktion start_main. Alles ging gut, und ich verwendet, GDB, um zu überprüfen, dass die return-Adresse überschrieben, mit der richtigen Adresse, die Punkte auf der shellcode im Speicher.

Aber wenn ich angenommen, um eine Muschel bekomme dieses angezeigt:

Program received signal SIGSEGV, Segmentation fault. 0xbffff178 in ?? ()

0xbffff178 ist die Rückkehr überschrieben Adresse zurück, und das tut es Punkt, um die shellcode ich bin mir ziemlich sicher. Keine Hilfe?

InformationsquelleAutor Peter | 2014-02-26
Schreibe einen Kommentar