Capisco che ogni istruzione dovrebbe essere letta nella CPU per l'esecuzione, il che probabilmente è il motivo per cui le code page dovrebbero essere "r-x".
Ma la mia osservazione è che il comportamento di leggere il codice nella CPU per l'esecuzione è normale, mentre leggere il codice in un altro spazio di memoria (ad esempio, copiare il codice in un registro generico) è piuttosto sospetto. Un esempio è il vantaggio "Riutilizzo del codice just-in-time per bypassare ASLR" ( link ), e credo che possa essere usato dagli aggressori in molti altri modi.
Quindi la mia domanda è: perché non rimuovere il permesso "r" dalle code page, cioè perché non progettare la CPU in modo che il codice possa essere letto nella CPU solo per l'esecuzione?