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