Vad är en buffertöverflöde?

En buffertöverskridning inträffar när ett program försöker skriva till en buffert och går utanför dess gränser, vilket resulterar i programmets skrivinformation till minnet som potentiellt tillhör ett annat program. Detta bryter mot minnesintegriteten i operativsystemet, vilket resulterar i ett allvarligt fel och potentiell krasch för genomförandeprogrammet. Den största faran för ett buffertöverskridning kommer från två huvudelement. För det första är informationen som skrivs utanför bufferten till synes "förlorad", eftersom datorns minneskarta - dess lista över minnesplatser - inte kan redogöra för den. För det andra kan en buffertöverskridning av misstag skriva över information som lagras i minnet för ett annat program, och effektivt störa exekveringen av ett annat program. Den vanligaste användningen av en buffert är vanligtvis i video- eller ljuduppspelning, där COMputer leder till ytterligare x sekunder av bilder eller ljud i minnet, vilket säkerställer att uppspelningen inte kommer att avbrytas om något tillfälligt blir fel på systemet. En buffert finns endast inom en specifik, förutbestämd plats i datorns minne, precis som ett land finns bara inom gränslinjerna som dras på en karta. Att gå utanför dessa virtuella "linjer" resulterar i problem inte bara för programmet som körs, utan för andra program på systemet.

I huvudsak har programmet gått utanför sin tilldelade jurisdiktion och har invaderat utrymmet för ett annat arbetsprogram. När detta händer faller informationen som skrivs utanför bufferten effektivt av datorns karta; Med andra ord har systemet inte längre något sätt att hämta det. Eftersom datorn bara "vet" för att söka efter buffrad information inom det specifika buffertutrymmet som tilldelats i minnet, har det inget sätt att räknaut var den överfyllda 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 andra löpande program. När informationen i bufferten blöder förbi sitt designade område kommer den att skriva över och förstöra all information som redan lagras i dessa delar av minnet. Därför är en buffertöverflöde ett problem som kan undergräva effekten av ett angränsande program samt korrupta sin egen operation.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?