Buffer-Overflow: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) |
|||
| Zeile 1: | Zeile 1: | ||
=Was passiert beim Buffer-Overflow= | =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. | + | *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. | ||
[[Datei:buffer-overflow.png]] | [[Datei:buffer-overflow.png]] | ||
Version vom 7. Oktober 2020, 16:30 Uhr
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.
