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