Come è il codice macchina generato in runtime (come l'output di un JIT), effettivamente eseguito dalla CPU se la CPU / OS ha un bit di Execution Disable?
Per quanto ne so, molti processori e sistemi operativi moderni includono il supporto per un bit NX, (inclusi Intel e ARM), che impedisce il codice macchina memorizzato su qualsiasi indirizzo altro rispetto al codice sezione di un binario compilato da esecuzione. Chiaramente, questo è un vantaggio di sicurezza, perché impedisce gli attacchi di iniezione del codice shell.
Ma come fanno i motori JIT, come LLVM, che generano dinamicamente il codice macchina, per aggirare questo?