Hva er en bufferoverflyt?
Et bufferoverløp oppstår når et program prøver å skrive til en buffer og trinn utenfor grensene, noe som resulterer i at programmets skriverinformasjon til minnet som potensielt tilhører et annet program. Dette krenker hukommelsens integritet i operativsystemet, noe som resulterer i en alvorlig feil og potensielt krasj for kjøringsprogrammet. Den største faren for et bufferoverløp kommer fra to hovedelementer. For det første er informasjonen som er skrevet utenfor bufferen tilsynelatende "tapt", ettersom datamaskinens minnekart - dets liste over minneposisjoner - ikke kan gjøre rede for det. For det andre kan et bufferoverløp ved et uhell overskrive informasjon som er lagret i minnet for et annet program, og effektivt forstyrre utførelsen av et annet program også.
En "buffer" er et minneområde som brukes som et midlertidig lagringssted mens datamaskinen overfører informasjon fra et punkt til et annet. Den vanligste bruken av en buffer er vanligvis i video- eller lydavspilling, der datamaskinen cuer opp ytterligere X sekunder med opptak eller lyd i minnet, og sikrer at avspillingen ikke blir avbrutt hvis noe midlertidig går galt i systemet. En buffer eksisterer bare innenfor et spesifikt, forhåndsbestemt sted i datamaskinens minne, omtrent som et land bare eksisterer innenfor grenselinjene tegnet på et kart. Å gå utenfor disse virtuelle "linjene" resulterer i problemer ikke bare for programmet som kjører, men for andre programmer på systemet.
I hovedsak har programmet gått utenfor den tildelte jurisdiksjonen og har invadert rommet til et annet arbeidsprogram. Når dette skjer, faller informasjonen som er skrevet utenfor bufferen effektivt av datamaskinens kart; med andre ord, systemet har ikke lenger noen måte å hente det på. Siden datamaskinen bare "vet" å søke etter bufret informasjon innenfor den spesifikke bufferplassen som er tildelt i minnet, har det ingen måte å finne ut hvor den overfylte informasjonen har gått.
I tillegg til dette, kan et bufferoverløp potensielt forstyrre andre programmer som kjører på datamaskinen. Se for deg at minnelagerområdet på hver side av bufferen allerede er tilordnet andre kjørende programmer. Når informasjonen i bufferen blør forbi det designede området, vil den overskrive og ødelegge all informasjon som allerede er lagret i minnesdelene. Derfor er et bufferoverløp et problem som kan undergrave effektiviteten til et tilstøtende program i tillegg til å ødelegge dens egen drift.