Stack overflow: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 2:
Uno '''stack overflow''' consiste (solitamente) nella sovrascrittura della locazione di memoria interna allo stack contenente l''''indirizzo di ritorno''' oppure la copia del precedente '''frame pointer''' (vedi [[call stack]]). In modo tale, è possibile forzare il sistema a redirigere il flusso di esecuzione - nel momento del ritorno alla funzione chiamante - ad una locazione di memoria dove ha inizio del codice arbitrario.
 
I moderni sistemi operativi e compilatori sono dotati di vari meccanismi di protezione e randomizzazione dello stack, e di riorganizzazione fisica delle variabili sensibili (per evitare la sovrascrittura di puntatori).
 
=== Esempio di programma vulnerabile in Linux (senza protezioni) ===