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