» »

[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
102362 (2061) Spura
»

C osnova

Oddelek: Programiranje
221575 (1090) RunoTheDog
»

Pomoc v C-ju

Oddelek: Programiranje
51339 (1251) rfmw
»

Odkrita ranljivost v Flashu omogoča pridobitev sistemskih privilegijev

Oddelek: Novice / Varnost
355788 (3688) fiction
»

[C] zagon programa z argumenti

Oddelek: Programiranje
5914 (815) fiction

Več podobnih tem