Wat is een bufferoverloop?
Een bufferoverloop treedt op wanneer een programma naar een buffer probeert te schrijven en buiten zijn grenzen stapt, waardoor het programma informatie naar het geheugen schrijft die mogelijk bij een ander programma hoort. Dit schendt de integriteit van het geheugen binnen het besturingssysteem, wat resulteert in een ernstige fout en mogelijke crash voor het uitvoerende programma. Het grote gevaar van een bufferoverloop komt van twee belangrijke elementen. Ten eerste is de informatie die buiten de buffer is geschreven ogenschijnlijk 'verloren', omdat de geheugenkaart van de computer - de lijst met geheugenlocaties - hier geen rekening mee kan houden. Ten tweede kan een bufferoverloop per ongeluk informatie die in het geheugen is opgeslagen voor een ander programma overschrijven, waardoor de uitvoering van een ander programma ook effectief wordt verstoord.
Een "buffer" is een geheugengebied dat wordt gebruikt als tijdelijke opslaglocatie terwijl de computer informatie van het ene punt naar het andere overbrengt. Het meest gebruikelijke gebruik van een buffer is meestal bij het afspelen van video of audio, waarbij de computer nog eens X seconden aan beeldmateriaal of audio in het geheugen opslaat, zodat het afspelen niet wordt onderbroken als er iets misgaat op het systeem. Een buffer bestaat alleen binnen een specifieke, vooraf bepaalde locatie in het geheugen van de computer, net zoals een land alleen bestaat binnen de grenslijnen die op een kaart zijn getekend. Als u buiten deze virtuele "lijnen" stapt, ontstaan er niet alleen problemen voor het programma dat wordt uitgevoerd, maar ook voor andere programma's op het systeem.
In wezen is het programma buiten zijn toegewezen rechtsgebied gestapt en is het de ruimte van een ander werkprogramma binnengevallen. Zodra dit gebeurt, valt de buiten de buffer geschreven informatie effectief van de kaart van de computer; met andere woorden, het systeem kan het niet meer ophalen. Aangezien de computer alleen "weet" om gebufferde informatie te zoeken binnen de specifieke bufferruimte die in het geheugen is toegewezen, kan de computer niet achterhalen waar de overgelopen informatie is gebleven.
Bovendien kan een bufferoverloop andere programma's op de computer verstoren. Stel u voor dat de geheugenopslagruimte aan weerszijden van de buffer al is toegewezen aan andere actieve programma's. Zodra de informatie in de buffer voorbij het ontworpen gebied loopt, wordt alle informatie die al in die delen van het geheugen is opgeslagen overschreven en beschadigd. Daarom is een bufferoverloop een probleem dat de effectiviteit van een aangrenzend programma kan ondermijnen en de eigen werking kan beschadigen.