Sažetak:
Sigurnosni propusti temeljeni na prepisivanju
spremnika (engl. buffer overflow), odnosno memorijskim ranjivostima
dobro su poznati. Nakon što pomoću preljeva spremnika
neovlašteni korisnik preusmjeri tok izvršavanja programa,
izvršavanje se uglavnom nastavlja na memorijskim adresama na
kojima se nalazi programski kod postavljen od strane
neovlaštenog korisnika. Taj programski kod se u praksi naziva
shellcode i u memoriju se uglavnom ubacuje putem legitimnih upita,
odnosno predaje korisničkog unosa ranjivoj aplikaciji.
Dokument opisuje osnovne koncepte izrade jednostavnih shellcode
programa na Linux i Windowsim operacijskim sustavima, a na
konkretnim primjerima analizirani su neki od tipičnih problema
koji se pritom javljaju. Također, ukratko su opisane osnovne
karakteristike asemblerskog jezika, čije je razumijevanje
ključno za izradu shellcode programa.