*   >> läser Utbildning artiklar >> tech >> safety

Introduktion till Bufferoverflow

I datasäkerhet och programmering, en buffer overflow, eller buffertöverskridning, är en anomali om ett program, medan du skriver data till en buffert, överskridanden buffertens gränsen och skriver angränsande minne. Detta är ett specialfall av kränkning av minnessäkerheten. Buffertspill kan utlösas av insatsvaror som är utformade för att köra kod, eller ändra hur programmet fungerar. Detta kan resultera i oberäkneligt program beteende, inklusive minnesåtkomst fel, felaktiga resultat, en krasch eller ett brott mot säkerheten i systemet.

De är därmed grunden för många sårbarheter i mjukvara och kan uppsåtligt utnyttjas. Programmeringsspråk som vanligen förknippas med buffertspill inkluderar C och C ++, som ger ingen inbyggt skydd mot åtkomst till eller skriva över data i någon del av minnet och inte automatiskt kontrollera att data skrivs till en array (den inbyggda buffert typ) är inom gränserna för den arrayen. Gränskontroll kan förhindra buffertspill. Omdömen

Jag vet att du har en massa frågor Vad är orsaken till denna Crazy programfel? > Det är ett fel i programmering (Skrivkoder) Är det viktigt att lära sig.

det är bara små dumma utnyttja? > denna typ av utnyttja hur gör skillnad mellan professionella Hackare och Normal Hackers. Jag kommer att förklara att i Lektion 4;). Kan u ge mig en teknisk beskrivning Ett buffertspill inträffar när data skrivs på en buffert, på grund av otillräcklig gränskontroll, korrumperar datavärden i minnesadresser intill den tilldelade bufferten. Oftast sker detta när du kopierar strängar av tecken från en buffert till en annan.

Grundläggande exempel I följande exempel har ett program som definieras två dataposter som är intill varandra i minnet: en 8- byte lång sträng buffert, A, och en två-byte heltal, B. Initialt innehåller en ingenting men noll byte, och B innehåller nummer 1979. Tecken är en byte breda. variabelnamn AB värde [null sträng] 1979 hex värde 00 00 00 00 00 00 00 00 07 BB Nu försöker programmet att lagra nollterminerade strängen "överdriven" i en buffert.

Genom att underlåta att kontrollera längden på strängen, skriver det värdet av B: variabelnamn AB värde 'e' 'x' 'c' 'e' s 's' 'i' 'v' 25856 hex 65 78 63 65 73 73 69 76 65 00 Även om programmeraren inte hade för avsikt att ändra B alls, har B värde nu ersatts av en rad bildad av en del av teckensträngen. I detta exempel på en big-endian system som använder ASCII skulle "e" följt av en nolla byte bli nummer 25856. Om B var den enda annan variabel data

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.