La maggior parte dei sistemi moderni ha una unità di gestione della memoria o MMU. La MMU è responsabile della traduzione di indirizzi fisici in indirizzi virtuali. Questo è usato per dare ad ogni processo la sua memoria virtuale privata. L'indirizzo X di un processo non corrisponde a quello di un altro processo X. Ciò migliora le prestazioni, la sicurezza e riduce il rischio di arresti anomali, ma ha anche il vantaggio di essere utilizzabile per implementare ASLR. Mentre i dati possono essere inseriti in indirizzi non casuali nella memoria fisica, il sistema è libero di posizionare i dati ovunque desideri nella memoria virtuale di un processo.
Quando un processo viene creato per la prima volta, l'unica vera memoria a cui ha accesso è lo stack, che è limitato e non è pensato per essere usato per scopi generali. Ogni volta che è richiesta una quantità di memoria non banale, il processo deve utilizzare lo heap . L'unico modo per farlo è quello di richiedere memoria dal kernel tramite una chiamata di sistema. Questa chiamata di sistema contiene alcuni argomenti che specificano la quantità di memoria che desidera, il tipo di memoria, ecc. La chiamata restituisce l'indirizzo di base di una memoria appena allocata della dimensione specificata. Una delle cose che ASLR fa è che questo indirizzo di base sia imprevedibile. Quando ASLR è disabilitato, la memoria allocata viene collocata in posizioni prevedibili.
ASLR fa molto più che randomizzare la base della memoria allocata. Quando viene eseguito un binario, il linker dinamico lo connette a tutte le librerie condivise di cui ha bisogno. Sebbene una determinata libreria sia conservata in un solo posto nella memoria fisica, il sistema è in grado di tradurla in un indirizzo virtuale per ogni processo che la utilizza. Questa traduzione degli indirizzi viene eseguita per motivi di efficienza, ma ASLR ne fa un ulteriore uso assicurandosi che l'indirizzo virtuale sia casuale. Un eseguibile appositamente compilato come Eseguibile indipendente dalla posizione (PIE) può chiamare le funzioni della libreria anche se il l'indirizzo di base della biblioteca è randomizzato.
Questo non è tutto ASLR, e alcuni sistemi operativi incentrati sulla sicurezza (OpenBSD, HardenedBSD, Linux con patch grsecurity / PaX, ecc.) usano una forma di ASLR che fa anche di più.