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