Basiswissen Buffer Overflow

14.05.2004
Von Thomas Wölfer

Puts( Name);

Puts( Vorname);

Soweit alles OK: Zwei Variablen a 15 Byte sind deklariert.

Der interessante Teil der Veränderung befindet sich in der dritten Programmzeile. Hier wird der "neue" Nachname in die Variable kopiert. Man muss sich erneut vergegenwärtigen, wie der Speicherinhalt nach den einzelnen Zeilen aussieht. Bis zum ersten strcpy-Befehl tut sich nicht viel: Es gibt 30 Bytes Speicherplatz, die für zwei Variable zur Verfügung stehen und zufällige Werte enthalten:

Dann folgt aber die Zeile mit dem strcpy-Befehl: