» »

[C++] Buffer overflow sample code

[C++] Buffer overflow sample code

Simko ::

Glede buffer overflowov sem pravkar prebral kar nekaj literature, pa mi vseeno ni čist jasno.
Torej, če damo v buffer več podatkov, kot jih lahko shrani, pride do buffer overflowa.

A mi prosim napišete nekaj primerov slabo napisane kode, ki skicira takšno situacijo...več primerov, tem bolje. Hvala.

Simko ::

[#include

char *code = "AAAABBBBCCCCDDD"; //including the character '\0' size = 16 bytes

void main()

{

char buf[8];

strcpy(buf, code);

}]

To je že en tak primer - ta mi je jasen.

Kaj pa kakšen brez kazalcev?

64202 ::

Naj ne bi bilo mozno, ker ce stvar "vidis" v c-ju, zadeve ne mores usuti. Edina izjema so pointerji. Tudi ce dodas threade, se vedno rabis pointerje za usutje. No ja, stack overflow zaradi rekurzije, ampak to ne steje verjetno? Ce se velikost stacka ne preverja, potem bi lahko zasel v heap.

BigWhale ::

Konec koncev je stack overflow zaradi rekurzije tudi izveden s pointerji. ;)


int my_list[10];

for (int a = 0; a < 20; a++)
{

my_list[a] = 666;

}

Simko ::

Hmmm, BigWhale - sem mislil, da prevajalnik v taksnem primeru najde napako...pa ocitno ne.

Ce imam veliiiiiko neke kode, ali se da kako z debuggerjem (Visaul Studio 6) ugotoviti, ce po (oz. med) izvedbi programa pride do buffer overflowa?

BigWhale ::

So druga orodja za to, ki ti iscejo take zadeve, malo pogooglaj.

64202 ::

Tole je precej tezko najti z guglom, ce res direkt ne ves imena (ccured):
http://manju.cs.berkeley.edu/ccured/

Glede na opis naj bi bila stvar "prfekt". Treba kdaj probat.

CCfly ::

Valgrind in še kakšen sintaktični analizator (mislim da splint) bi morala zadostovati.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Java] array v voidu

Oddelek: Programiranje
102338 (2037) Spura
»

C osnova

Oddelek: Programiranje
221567 (1082) RunoTheDog
»

Pomoc v C-ju

Oddelek: Programiranje
51331 (1243) rfmw
»

Odkrita ranljivost v Flashu omogoča pridobitev sistemskih privilegijev

Oddelek: Novice / Varnost
355776 (3676) fiction
»

[C] zagon programa z argumenti

Oddelek: Programiranje
5907 (808) fiction

Več podobnih tem