Welkom op de Nederland Computer Kennisnetwerk!  
 
Zoeken computer kennis
Home Hardware Netwerken Programmering Software Computerstoring Besturingssysteem
Computer Kennis >> Programmering >> C /C + + Programming >> Content
Beschrijving van een C + + -functie en hoe het veroorzaakt een bufferoverloop
Buffer overflow in C + + wordt veroorzaakt door een aantal verschillende onderwerpen . Vaak gebeurt als onderdeel van de werking van een functie ter schrijven naar een matrix of toegang diepe geheugen . Typisch , buffer overflow treedt op wanneer een gebruiker of programmeur ingangen gegevens buiten het bereik van een variabele of een array . Functies die proberen verder te gaan dan deze range kan ook proberen om gegevens te wissen in het systeem , of omleiden van het systeem door het verwijderen of overschrijven van gegevens . Functies in C + +

Functies
in C en C + + gedragen zoals verwacht , in vergelijking met andere programmeertalen . Functies bestaan ​​, net als elke andere variabele of een systeem van informatie , in het geheugen en worden verwezen door adres . Functies , door zelf , zijn slechts blokken code in het geheugen waarnaar wordt verwezen . Elke fout door een functie referentie gegooid zou kunnen te wijten zijn aan een niet aangegeven functie of een functie verkeerd genoemd . Een buffer overflow fout zou waarschijnlijk komen van de code binnen de functie .
Variabelen en Memory

C + + is statisch getypt , wat betekent dat de programmeur een variabele type moet opgeven bij het declareren van een variabele . Dit komt omdat C + + vernietigt geheugenblokken van bepaalde afmetingen op basis van de variabele type. Een integer variabele ( int ) verklaarde in een programma zal een ruimte in het geheugen gereserveerd speciaal voor een int te krijgen. Het geheugen blok zal de exacte grootte van een integer zijn .
Arrays

Arrays
zijn verzamelingen van variabelen die in een naam . Bijvoorbeeld , de matrix hieronder maakt een lijst van 10 getallen , die gebruikt kan worden door te verwijzen naar een index ( naam [ 0 ] , naam [ 1 ] , enz. ) op

int naam [ 10 ] ;

In plaats van een integer , de array vernietigt genoeg continue ruimte voor 10 . Echter , omdat de array- index toegang kan worden geprobeerd op waarden dan hetgeen is opgenomen in de array ( naam [ 11 ] , bijvoorbeeld) , fouten kunnen optreden als de programmeur niet kijken hoe ze gebruik maakt van de array .
< br > Buffer Overflow

Vanwege de aard van arrays in C + + , kan een array in een functie slachtoffer worden van overstromingen bufferen . Als een gebruiker een tekeninvoer groter dan de matrix aankan binnenkomt , zal de extra tekens data naast de array in overschrijft . Bijvoorbeeld ,

leegte voorbeeld
( ) {

int login [ 15 ]
;

int i = 0 ;

terwijl ( cin >> een [ i ] ) {

i + + ;

}

}


de lus "terwijl" zal nooit eindigen , en tegen de tijd " i " bereikt 15 , zal de gebruiker beginnen met het invoeren van gegevens die het geheugen overschreven . Dit kan onbedoelde gevolgen , zoals het herschikken van een lokale variabele hebben , of , in specifieke omstandigheden , het herschrijven van de functie pointers om te verwijzen naar andere , kwaadaardige code .

Previous: Next:
  C /C + + Programming
·Het omzetten van Char Buffer n…
·C Geheugenlekkage Gereedschap 
·Hoe de memcpy functie in gebru…
·Hoe te Ttf Font converteren na…
·Wat is het tegenovergestelde v…
·Toegang krijgen tot het scherm…
·Hoe maak je een functie Protot…
·Hoe gegevens opslaan op XCode …
·Hoe te Skeleton bestanden gebr…
  Related Articles
Hoe maak je een Combo Box Maak in Visual…
Hoe maak je een Check Box Maak in Visual…
Hoe maak je een tekstvak maken in Visual…
Hoe maak je een schijf keuzelijst in Vis…
Hoe kan ik een keuzelijst maken in Visua…
Hoe kan ik een Picture Box Maak in Visua…
Hoe een bestand keuzelijst Maak in Visua…
Hoe maak je Voeg een tekstvak in Visual …
Hoe maak je een Picture Box in Visual Ba…
  Programmering Articles
·Hoe kan ik een lijst met behulp van Stru…
·Hoe je Time Strings converteren in Vb.Ne…
·Hoe de ID van een object in JQuery Krijg…
·Hex Code voor Apostrophe 
·Hoe te Innovatek Install 
·Hoe te Run PKZIP Van Java 
·Hoe te bespoedigen Ruby Script 
·Hoe om de actieve werkmap wijzigen in VB…
·Hoe te luisteren naar een toetsenbord in…
Copyright © Computer Kennis http://www.nldit.com