في بنية x86-64، كيف ممكن نظام التشغيل يحدد أي صفحات مش ممكن تحتوى على رمز قابل للتنفيذ؟
Context:بت No-Execute أو بت NX (بت 63 من إدخال جدول الصفحات) بيسمح لنظام التشغيل بتحديد أي صفحات من مساحة العناوين الافتراضية ممكن تحتوى على رمز قابل للتنفيذ واللي مش ممكن. محاولة تنفيذ الشفرة من صفحة تحمل علامة "لا تنفيذ" بتنتج انتهاك الوصول إلى الذاكرة، زي محاولة الكتابة إلى صفحة للقراءة فقط. ده هيسبب صعوبة اكتر على الشفرة الخبيثة في السيطرة على النظام عن طريق هجمات "تجاوز المخزن المؤقت" أو "خزن المؤقت غير المتحكم فيه". كانت ميزة مشابهة متوفرة على معالجات x86 منذ 80286 كسمة لموصفات القطاع ؛ ومع ذلك ، فهذه تعمل فقط على قطاع كامل في وقت واحد.
ممكن نظام التشغيل يعلن صفحة من مساحة العناوين الافتراضية ببيت No-Execute أو NX ، وهو بت 63 من إدخال جدول الصفحة.