Forum » Programiranje » [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.
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?
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;
}
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?
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?
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.
http://manju.cs.berkeley.edu/ccured/
Glede na opis naj bi bila stvar "prfekt". Treba kdaj probat.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] array v voiduOddelek: Programiranje | 2338 (2037) | Spura |
» | C osnovaOddelek: Programiranje | 1567 (1082) | RunoTheDog |
» | Pomoc v C-juOddelek: Programiranje | 1331 (1243) | rfmw |
» | Odkrita ranljivost v Flashu omogoča pridobitev sistemskih privilegijevOddelek: Novice / Varnost | 5776 (3676) | fiction |
» | [C] zagon programa z argumentiOddelek: Programiranje | 907 (808) | fiction |