Vad är ett buffertöverskridande?
Ett buffertöverskridande inträffar när ett program försöker skriva till en buffert och steg utanför dess gränser, vilket resulterar i programmets skrivinformation till minnet som potentiellt tillhör ett annat program. Detta bryter mot minnets integritet i operativsystemet, vilket resulterar i ett allvarligt fel och potentiell krasch för det körande programmet. Den största faran för ett buffertöverskridande kommer från två huvudelement. Först är informationen skriven utanför bufferten uppenbarligen "förlorad", eftersom datorns minneskarta - dess lista över minnesplatser - inte kan redogöra för den. För det andra kan ett buffertöverskridande oavsiktligt skriva över information lagrad i minnet för ett annat program, vilket effektivt stör även exekveringen av ett annat program.
En "buffert" är ett minneområde som används som en tillfällig lagringsplats medan datorn överför information från en punkt till en annan. Den vanligaste användningen av en buffert är vanligtvis i video- eller ljuduppspelning, där datorn cuerar ytterligare X sekunder av bilder eller ljud i minnet, vilket säkerställer att uppspelningen inte avbryts om något tillfälligt går galt i systemet. En buffert finns endast inom en specifik, förutbestämd plats i datorns minne, ungefär som att ett land bara finns inom gränslinjerna ritade på en karta. Steg utanför dessa virtuella "linjer" resulterar i problem inte bara för programmet som körs, utan även för andra program på systemet.
I huvudsak har programmet gått utanför dess tilldelade jurisdiktion och har invaderat utrymmet för ett annat arbetsprogram. När detta händer faller informationen utanför bufferten effektivt från datorns karta. med andra ord, systemet har inte längre något sätt att hämta det. Eftersom datorn bara "vet" att söka efter buffrad information inom det specifika buffertutrymmet som tilldelats i minnet, har det inget sätt att räkna ut var den översvämmade informationen har gått.
Utöver detta har ett buffertöverskridande potential att störa andra program som körs på datorn. Föreställ dig att minneslagringsutrymmet på vardera sidan av bufferten redan har tilldelats till andra löpande program. När informationen i bufferten blöder förbi dess utformade område kommer den att skriva över och förstöra all information som redan lagrats i de delar av minnet. Därför är ett buffertöverskridande ett problem som kan undergräva effektiviteten hos ett angränsande program såväl som att skada dess egen funktion.