Bagaimana kode mesin yang dihasilkan runtime (seperti output dari JIT), sebenarnya dieksekusi oleh CPU jika CPU / OS memiliki bit Nonaktifkan Eksekusi?
Sejauh yang saya tahu, banyak prosesor modern dan Sistem Operasi termasuk dukungan untuk NX bit, (termasuk Intel dan ARM), yang mesin mencegah kode yang disimpan di alamat lain selain bagian kode biner disusun dari yang dieksekusi. Jelas, ini adalah keuntungan keamanan yang bagus, karena mencegah serangan injeksi shell-code.
Tetapi bagaimana mesin JIT, seperti LLVM, yang secara dinamis menghasilkan kode mesin, menyiasati ini?