Na arquitetura x86-64, como o sistema operacional pode especificar quais páginas não podem conter código executável?
O bit No-Execute ou NX (bit 63 da entrada da tabela de páginas) permite que o sistema operacional especifique quais páginas do espaço de endereço virtual podem conter código executável e quais não podem. Uma tentativa de executar código de uma página marcada "não executar" resultará em uma violação de acesso à memória, semelhante a uma tentativa de escrever em uma página de somente leitura. Isso deve tornar mais difícil para o código malicioso assumir o controle do sistema por meio de ataques de "excesso de buffer" ou "buffer não verificado".
O sistema operacional pode marcar uma página de espaço de endereço virtual com o bit No-Execute ou NX, que é o bit 63 da entrada da tabela de páginas.