Was ist ein Pufferüberlauf?
Ein Pufferüberlauf tritt auf, wenn ein Programm versucht, in einen Puffer zu schreiben, und über seine Grenzen hinausgeht, was dazu führt, dass das Programm Informationen in den Speicher schreibt, die möglicherweise zu einem anderen Programm gehören. Dies verletzt die Integrität des Arbeitsspeichers im Betriebssystem und führt zu einem schwerwiegenden Fehler und einem möglichen Absturz des ausführenden Programms. Die Hauptgefahr eines Pufferüberlaufs geht von zwei Hauptelementen aus. Erstens sind die außerhalb des Puffers geschriebenen Informationen scheinbar "verloren", da die Speicherzuordnung des Computers - die Liste der Speicherorte - dies nicht erklären kann. Zweitens kann ein Pufferüberlauf versehentlich Informationen überschreiben, die im Speicher eines anderen Programms gespeichert sind, wodurch die Ausführung eines anderen Programms ebenfalls beeinträchtigt wird.
Ein "Puffer" ist ein Speicherbereich, der als temporärer Speicherort verwendet wird, während der Computer Informationen von einem Punkt zu einem anderen überträgt. Die häufigste Verwendung eines Puffers ist in der Regel die Video- oder Audiowiedergabe, bei der der Computer zusätzliche X Sekunden an Filmmaterial oder Audio im Speicher abruft, um sicherzustellen, dass die Wiedergabe nicht unterbrochen wird, wenn auf dem System vorübergehend ein Fehler auftritt. Ein Puffer existiert nur an einem bestimmten, vorbestimmten Ort im Speicher des Computers, so wie ein Land nur innerhalb der auf einer Karte eingezeichneten Grenzlinien existiert. Das Überschreiten dieser virtuellen "Linien" führt zu Problemen nicht nur für das laufende Programm, sondern auch für andere Programme auf dem System.
Im Wesentlichen hat sich das Programm seiner zugewiesenen Gerichtsbarkeit entzogen und ist in den Bereich eines anderen Arbeitsprogramms eingedrungen. Sobald dies geschieht, fallen die außerhalb des Puffers geschriebenen Informationen effektiv von der Karte des Computers. Mit anderen Worten, das System hat keine Möglichkeit mehr, es abzurufen. Da der Computer nur "weiß", nach gepufferten Informationen in dem bestimmten, im Speicher zugewiesenen Pufferraum zu suchen, kann er nicht herausfinden, wo die übergelaufenen Informationen abgelegt wurden.
Darüber hinaus kann ein Pufferüberlauf andere auf dem Computer ausgeführte Programme stören. Stellen Sie sich vor, dass der Speicherplatz auf beiden Seiten des Puffers bereits anderen laufenden Programmen zugewiesen wurde. Sobald die Informationen im Puffer den vorgesehenen Bereich überschreiten, werden alle bereits in diesen Speicherbereichen gespeicherten Informationen überschrieben und beschädigt. Daher ist ein Pufferüberlauf ein Problem, das die Wirksamkeit eines benachbarten Programms untergraben und dessen eigenen Betrieb beeinträchtigen kann.