La mia comprensione della memoria virtuale è che il sistema operativo consente a ciascun processo di accedere all'intero pool di memoria e crea questa illusione mediante il paging.
Di conseguenza, un programma può vedere solo la propria memoria e non può vedere la vera memoria di sistema, e certamente non lo spazio di memoria di altre applicazioni.
Come funzionano gli exploit come i buffer overflow (quando non c'è input per il programma), se non riescono a vedere al di fuori della propria memoria?
Sto parlando del tipo di exploit che compilate e che risultano in un eseguibile che sfrutta un demone (e non passando input appositamente predisposti attraverso campi di input umani).