*   >> Lezen Onderwijs artikelen >> tech >> safety

Inleiding Om Bufferoverflow

In computerbeveiliging en programmering, een buffer overflow, of buffer overrun, is een anomalie, waar een programma, tijdens het schrijven van data naar een buffer, overschrijdingen grens van de buffer en overschrijft aangrenzende geheugen. Dit is een speciaal geval van schending van het geheugen veiligheid. Bufferoverloop kan worden geactiveerd door ingangen die zijn ontworpen om code uit te voeren, of de manier waarop het programma werkt veranderen.

Dit kan resulteren in een grillig programma gedrag, inclusief toegang tot het geheugen fouten, onjuiste resultaten, een crash of een inbreuk op de beveiliging van het systeem. Zij zijn dus de basis van veel zwakke plekken in software en kan kwaadwillig worden benut. Programmeertalen vaak geassocieerd met buffer overflows onder C en C ++, die bieden geen ingebouwde bescherming tegen toegang tot of het overschrijven van data in een deel van het geheugen en niet automatisch te controleren of de gegevens op een array (de ingebouwde soort buffer) is binnen de grenzen van deze array.

Bounds checking kan voorkomen buffer overflows.

Ik weet dat je veel vragen Wat is de reden van deze Crazy bug? > Het is een fout van de programmering (Schrijven Codes) Is het belangrijk om te leren.; het is gewoon klein dom te benutten? > dit type exploit hoe verschil tussen Professional Hackers en Normal Hackers maken. Ik zal uitleggen dat in Les 4;).

Kunt u mij een technische beschrijving Een buffer overflow treedt op wanneer de gegevens geschreven naar een buffer, als gevolg van onvoldoende grenzen controleren, corrumpeert gegevens waarden in het geheugen adressen grenzend aan de toegewezen buffer. Meestal gebeurt dit wanneer het kopiëren van tekenreeksen van de ene naar de andere buffer. Basic voorbeeld In het volgende voorbeeld is een programma twee gegevenselementen die grenzen geheugen zijn gedefinieerd: een 8-byte lange reeks buffer A, en een twee-byte integer, B. Aanvankelijk A bevat niets dan nul bytes, en B bevat het nummer 1979.

Characters zijn een byte breed. variabele naam AB waarde [null reeks] 1979 hex waarde 00 00 00 00 00 00 00 00 07 BB Nu, het programma probeert de tekenreeks "overdreven" op te slaan in de A-buffer. Door niet de lengte van het touw controleren, overschrijft de waarde van B: naam van de variabele AB waarde 'e' 'x' 'c' 'e' 's' 's' 'i' 'V' 25.

856 hex 65 78 63 65 73 73 69 76 65 00 Hoewel de programmeur niet van plan B helemaal veranderen, heeft B de waarde nu vervangen door een aantal gevormd

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.