x86-64アーキテクチャにおいて、オペレーティングシステムはどのように実行可能なコードを含むことができないページを指定することができますか？
No-ExecuteビットまたはNXビット（ページテーブルエントリーのビット63）により、オペレーティングシステムは、仮想アドレス空間のどのページに実行可能なコードを含むことができ、どのページに実行できないかを指定することができるのだ。実行禁止」のタグが付けられたページからコードを実行しようとすると、読み取り専用ページに書き込もうとした場合と同様に、メモリアクセス違反が発生するのだ。これにより、悪意のあるコードが「バッファオーバーラン」や「アンチェック・バッファ」攻撃によってシステムを制御することがより困難になるはずなのだ。同様の機能は、80286以降のx86プロセッサでセグメントディスクリプタの属性として利用可能ですが、これは一度にセグメント全体に対してのみ機能するのだ。
オペレーティングシステムは、仮想アドレス空間のページに、ページテーブルエントリーのビット63であるNo-ExecuteまたはNXビットのタグを付けることができるのだ。