Hallo,
Ich versuche gerade mein kleines Progrämmchen per Buffer Overflow zu exploiten, doch leider komme ich nicht dahinter, was das Problem ist.
Ich habe die EIP bzw. die Returnadresse so "verbogen", dass sie in den NOP-Abschnitt im Buffer zeigt, damit danach der Shellcode ausgeführt werden kann. Doch leider komme ich nicht einmal mit dem gdb dahinter, was das Problem ist. Es kommt immer folgende Meldung wenn die Funktion abgearbeitet wurde und RET ausgeführt werden soll:
Und das obwohl die Adresse 0xbffff9b8 das 10te Zeichen im lokalen Buffer der Funktion ist, also schön im NOP-Abschnitt liegen sollte.
Wenn ich allerdings eine Adresse einer Environment-Variablen ins EIP schreibe (die den Shellcode enthält), funktionierts!
Was kann daran schuld sein, dass nicht in den Buffer gesprungen werden kann?
Danke und lg
Ich versuche gerade mein kleines Progrämmchen per Buffer Overflow zu exploiten, doch leider komme ich nicht dahinter, was das Problem ist.
Ich habe die EIP bzw. die Returnadresse so "verbogen", dass sie in den NOP-Abschnitt im Buffer zeigt, damit danach der Shellcode ausgeführt werden kann. Doch leider komme ich nicht einmal mit dem gdb dahinter, was das Problem ist. Es kommt immer folgende Meldung wenn die Funktion abgearbeitet wurde und RET ausgeführt werden soll:
Code:
(gdb) n
0xbffff9b8 in ?? ()
(gdb) n
Cannot find bounds of current function
Und das obwohl die Adresse 0xbffff9b8 das 10te Zeichen im lokalen Buffer der Funktion ist, also schön im NOP-Abschnitt liegen sollte.
Wenn ich allerdings eine Adresse einer Environment-Variablen ins EIP schreibe (die den Shellcode enthält), funktionierts!
Was kann daran schuld sein, dass nicht in den Buffer gesprungen werden kann?
Danke und lg