In 1988 , de eerste grote internet - verspreiding virus overschreven een kleine , 536 - byte gedeelte van het geheugen op een enkele computer en binnen vier dagen , arbeidsongeschikt dan 60.000 computers wereldwijd . Ondanks de vooruitgang in programmeertalen , programmeertechnieken en besturingssysteem beveiliging verharding , kunnen kwaadwillende programmeurs nog steeds virussen en andere malware met behulp bufferoverruns te crashen , controle of gegevens te stelen van je systeem te maken . Soorten Memory Betrokken Een computer buffer is een gedeelte van het geheugen dat wordt gebruikt om gegevens die nodig zijn door een toepassing of het besturingssysteem tijdelijk vasthouden . Een toepassing een vaste of statische buffer genaamd de stapel , waarvan de grootte wordt bepaald wanneer het programma voor het eerst wordt samengesteld en toegekend door het besturingssysteem wanneer de toepassing wordt geladen . Heap -geheugen is een ander type van de buffer van een toepassing gebruikt terwijl deze wordt uitgevoerd . In tegenstelling tot de statische buffers , wordt heap geheugen gecreëerd en vernietigd als de toepassing vereist . Static bufferoverruns Static bufferoverruns optreden wanneer er te veel gegevens worden geschreven naar een vooraf gedefinieerde gedeelte van het geheugen binnen stack van de toepassing. De stapel bevat informatie over de toepassing en functie- variabelen . Items op de stack hebben een vast of statisch grootte. Als meer gegevens worden geschreven naar een stapel object dan het bedoeld houden wordt de overtollige gegevens in aangrenzende geheugenlocaties . De overtollige data kan er al de gegevens beschadigen . Heapoverschrijding Heap geheugen is de ruimte die uw besturingssysteem geeft de applicatie te creëren en op te slaan informatie op het vliegen . Elke heap blok heeft een pointer naar het fysieke adres van het geheugenblok voor en na . Net als stack overschrijdingen , wanneer er te veel gegevens worden geschreven naar een eerder toegewezen blok van het geheugen , de overtollige data loopt over naar het volgende blok van het geheugen en kunnen volgende en vorige pointers van het blok te veranderen . Dit kan worden gebruikt om de toepassing of plaats pointers crashen om geheugenblokken de kwaadwillende programmeur toegang heeft. Array indexeren Fouten Wanneer arrays worden gedeclareerd in de meeste programmeertalen een vast gedeelte van het geheugen in de heap vooraf toegewezen voor data van de array . De C -en C + + talen arrays correct toe te wijzen , maar niet voorkomen dat de array geheugen blok wordt overschreven. Zoals heap overschrijdingen , kan indexeren fouten overschreven of beschadigd aangrenzende blokken van het geheugen . Moderne talen zoals C # en Java controleer scala indexering fout tijdens het compileren en tijdens de uitvoering van het programma .
|