Mupfel
Mitglied
Hallo zusammen,
wenn man eine globale Puffervariable hat und einen Bufferoverflow erzeugt, kann man dann Programmcode überschreiben? Wie sieht es bei Stack-allokierten lokalen Variablen oder per malloc() auf dem Heap aus? Ich denke ja, dass es nur bei dem Ersten geht.
Deswegen hier mal ein Beispiel, von dem ich glaube, dass das geht:
Bei mehr als 255 Zeichen Eingabe rechne ich mit Problemen.
Es grüßt
Andreas
wenn man eine globale Puffervariable hat und einen Bufferoverflow erzeugt, kann man dann Programmcode überschreiben? Wie sieht es bei Stack-allokierten lokalen Variablen oder per malloc() auf dem Heap aus? Ich denke ja, dass es nur bei dem Ersten geht.
Deswegen hier mal ein Beispiel, von dem ich glaube, dass das geht:
C:
#include <stdio.h>
char buffer[256];
int main(void) {
scanf("%s", buffer); // keine Größenbegrenzung
printf("%s", buffer);
}
Bei mehr als 255 Zeichen Eingabe rechne ich mit Problemen.
Es grüßt
Andreas