Vraag : De Overschrijding van de buffer

Dit een snelle, maar duidelijke klinkende vraag. Als u een 16 bytebuffer hebt, hoeveel gegevens kunt u het vóór de bufferoverschrijdingen aanbrengen? Ik zou 16 bytes veronderstellen, maar ik ben verteld dit een beetje van een trucvraag is. Weet iedereen het?

Antwoord : De Overschrijding van de buffer

De sleutel zal het koord typisch is ook genoemd geworden ongeldig geëindigdr koord zijn. Het betekenen als het lengte van 16 heeft die van een ONGELDIG karakter exclusief is. De syntactische parser moet typisch ONGELDIG klusje vinden zodat het weet dat het is gekomen over het eind van het koord en kunnen te werk gaan om andere acties (als druk aan het scherm, enz.) te doen. Zo zou de toewijzing van geheugen (hoop of stapel), dit altijd door programmeur moeten worden behandeld.

E.g. verkool koord [LENGTH+1] of string_ptr = malloc (LENGTH+1)

Zo aan overstroming moet het eenvoudig zeggen dat als u 16 bytebuffer hebt, het in klusjeskoord [LENGTE] vertaalt waar de LENGTE 16 is. Zo zou het koord dat wordt verondersteld om geen overstroming te verzekeren één minder moeten zijn (b.v. lengte-1). Natuurlijk, veronderstel ik dat de byteserie inderdaad ongeldige geëindigden typeserie is. Anders, zou het controle moeten zijn door functies enz. (byte gebaseerde lengte) in de codes te ontvangen.

Er zijn meer aan de overstroming dusdanig dat het terugkeeradres met voeten treedt en enz. maar voorstelt dat u deze verbinding goed gelezen @ http://en.wikipedia.org/wiki/Buffer_overflow kunt controleren
Andere oplossingen  
 
programming4us programming4us