Basiswissen Buffer Overflow

14.05.2004
Von Thomas Wölfer

char Vorname[ 15];

Um einen Text in eine Variable zu kopieren, benutzt man den Befehl "String Copy", abgekürzt strcpy. Der Befehl erhält zwei Parameter. Der erste gibt die Quelle an, der zweite das Ziel des Kopiervorgangs. Das Ziel des Vorgangs wird als Adresse ausgedrückt - dazu kann man einfach den Namen der Variablen benutzen, da der Name für ihre Adresse steht. Um Namen und Vornamen eines Kontakts in eine Variable zu kopieren, verwendet man die folgenden Befehlszeilen:

strcpy( "Kofler", Name);

strcpy( "Heinz", Vorname);

Nun muss man sich den Inhalt des Arbeitsspeichers im Zuge der vier Programmzeilen vergegenwärtigen. Bevor die erste Programmzeile ausgeführt wird, liegt einfach nur unbelegter Speicher vor: Da noch nichts passiert ist, enthalten alle Speicherzellen mehr oder weniger zufällige Werte.

Dann folgen die beiden Programmzeilen, mit denen die Variablen festgelegt werden: