[RoLUG] RSG: Buffer overflow paper update

Ferdinando Pucci rolug@lists.linux.it
Tue, 18 Feb 2003 21:09:04 +0100


On Mon, 17 Feb 2003 22:15:59 +0100
Roccatello Eduard <eduard@box.it> wrote:

> Dati inizializzati: variabili alle quali è stato assegnato un valore
> Dati non inizializzati: variabili alle quali non è stato assegnato un valore
> 
> Esempio:
> int a; //dato non inizializzato
> int a = 1; //dato inizializzato
Perfetto, buona spiegazione!
> > I frame pointer, stack pointer e stack frame che sono?
> > Variabili? Costanti? Puntatori? Panini? :-)
> registri del microprocessore :-)
Cos'è un registro del microproc? Se non è un circolo vizioso si potrebbe aggiungere
un paio di righe per cio? :-)
> 
> > Che ne dici di commentare riga per riga l'output di
> > disassemble invece che nel paragrafo? E' molto incasinato
> > imho quel pezzo :-) per non parlare del calcolo che hai
> > fatto (0x40?), che non ho neancora capito... :~/
> 64dec = 40hex ovvero lo spazio per 64 char.
> il compilatore ne alloca 72dec. 72d-64d = 8d -> 40h+8h = 48hex
> ci sono 8 bytes in più che aggiunge il compilatore e servono a contenere 
> eventuali overflow (in modo da non sovrascrivere i registri). in gergo 
> tecnico si chiama Padding
Ah il padding! Ma c'è dappertutto! In cdrecord, in CSS, ... :-)
Capito il calcolo, un dword che è?

-- 
GnuPG info     rovigo.linux.it
 headers  _\ /_  webmaster
            V
    Linux User #250527