[RoLUG] RSG: Buffer overflow paper update

Ferdinando Pucci rolug@lists.linux.it
Mon, 17 Feb 2003 01:08:27 +0100


On Sat, 15 Feb 2003 23:10:20 +0100
Roccatello Eduard <eduard@box.it> wrote:

> PS: Ferdi che ne dici di accennare RSG sul sito web di rolug? (lo so, ti 
> faccio sempre lavorare :-)
Mah... non so... :-)
Molto interessante il buf overflow!! Qualche bazzecola:

La regione "Data" contiene dati sia inizializzati che non e indirizza anche
le variabili statiche, imagazzinate in questa regione di memoria.

Che diff c'è tra dati inizializzati e non? A parte questo riformulerei 
la frase cosi, mi sembra piu chiaro:

La regione "Data" contiene dati inizializzati, dati non inizializzati e 
variabili statiche.

Se uso "int main(void) ..." non ho l'err gcc 2.95.4: 
"code.c:5: warning: return type of `main' is not `int'"
ed il disassemble non mi da tutti i nop:
0x80483c8 <main>:       push   %ebp
0x80483c9 <main+1>:     mov    %esp,%ebp
0x80483cb <main+3>:     sub    $0x8,%esp
0x80483ce <main+6>:     add    $0xfffffff4,%esp
0x80483d1 <main+9>:     push   $0xf
0x80483d3 <main+11>:    call   0x80483c0 <funzione>
0x80483d8 <main+16>:    add    $0x10,%esp
0x80483db <main+19>:    leave  
0x80483dc <main+20>:    ret    
0x80483dd <main+21>:    lea    0x0(%esi),%esi
End of assembler dump.

I frame pointer, stack pointer e stack frame che sono? 
Variabili? Costanti? Puntatori? Panini? :-)
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... :~/



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