Buffer-Overflow

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Was passiert beim Buffer-Overflow

Wenn ein Programm gestartet wird, weist ihm das Betriebssystem einen bestimmten Speicherbereich zu. In einem Teil davon liegt der eigentliche Programmcode. Dieser ist geschützt und kann nicht geändert werden. Darüber liegt der Heap , in dem das System globale Variablen und Konstanten ablegt. Dann folgt der Stack , der lokale Variablen und den Inhalt von Prozessorregistern aufnehmen kann. Im Stack liegen auch die Rücksprung-Adressen von Unterprogrammen, also von Verzweigungen im Hauptprogramm. Beim Buffer-Overflow wird eine lokale Variable mit mehr Inhalt gefüllt, als für Sie reserviert ist. Dadurch kann der Stack und damit die Rücksprungadresse überschrieben werden. Wenn die Rücksprungadresse ungültig ist, kommt es zum Programmabsturz. Der Trick der Hacker besteht jetzt darin, die Rücksprungadresse auf Programmsegmente zu lenken, die den eigentlichen Schadcode enthalten.

Buffer-overflow.png

Quelle

Beispiel