Bagikan melalui


Kumpulan No-Execute (NX) Tak Berhalaman

Sebagai praktik terbaik, driver untuk Windows 8 dan versi Windows yang lebih baru harus mengalokasikan sebagian besar atau semua memori nonpaged dari kumpulan nonpaged yang tidak dapat dieksekusi (NX). Dengan mengalokasikan memori dari kumpulan NX yang tidak dipagasi, driver mode kernel meningkatkan keamanan dengan mencegah perangkat lunak berbahaya menjalankan instruksi dalam memori ini.

Dimulai dengan Windows 8, driver mode kernel dapat mengalokasikan memori dari kumpulan memori nonhalaman NX. Kumpulan ini dikelola oleh alokator memori mode kernel tujuan umum yang beroperasi mirip dengan alokator heap Win32 mode pengguna. Memori dalam kumpulan ini adalah NX dan tidak dipaging. Arsitektur prosesor x86, x64, dan Arm memungkinkan halaman memori ditetapkan sebagai NX untuk mencegah eksekusi instruksi di halaman ini. Biasanya, driver mode kernel menggunakan memori yang dialokasikan dari kumpulan tidak berhalaman untuk menyimpan data, dan tidak memerlukan kemampuan untuk menjalankan instruksi dalam memori ini.

Dukungan untuk Driver Versi Lama

Di Windows 7 dan versi Windows yang lebih lama, semua memori yang dialokasikan dari kumpulan yang tidak disebarkan dapat dieksekusi. Untuk mendorong porting driver ini agar menggunakan memori nonpage NX di Windows 8 dan versi Windows yang lebih baru, Microsoft menyediakan beberapa mekanisme pilihan untuk memungkinkan pengembang memperbarui driver mereka dengan upaya yang minimal. Untuk informasi selengkapnya, lihat Mekanisme Opt-In Kumpulan NX .

Untuk kompatibilitas mundur, biner driver yang berjalan pada Windows 7 dan versi Windows yang lebih lama, dan yang mengalokasikan memori dari kumpulan nonpaged yang dapat dieksekusi, akan berjalan pada Windows 8 dan versi Windows yang lebih baru tanpa modifikasi. Namun, driver ini tidak memanfaatkan peningkatan keamanan dari kumpulan nonpaged NX.