Kode mesin JIT dan bit Eksekusi Nonaktifkan


10

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?


Lihatlah implementasi Memory :: mengalokasikanMappedMemory untuk melihat bagaimana hal itu dilakukan dalam LLVM. - Untuk * nix - Untuk Windows
zr01

Jawaban:


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.