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