不可执行技术(non eXecutionNX) bit technology),理学-计算机科学技术-计算机体系结构-处理器安全支持技术,通过对内存地址空间中的内存页设置“不可执行”属性,使得此内存页中数据不能被执行的一种处理器中集成的安全技术。在CPU存储管理单元的TLB表项中增加NX(No eXecute)位,当某TLB表项的NX位为“0”,CPU允许从此TLB表项对应内存页中取指令来执行;当NX为“1”,则CPU不允许从此TLB表项对应的内存页中取指令执行,并产生异常。TLB是页表的高速缓存,TLB表项对应到页表表项。不可执行技术需要操作系统配合。操作系统将进程页表中某些页表项的不可执行位置为“1”,表示来自这些对应内存页的数据不可执行。不可执行技术主要用来防止类似于缓冲区溢出类型的攻击,这种攻击往往通过将攻击代码注入程序存储数据的空间(如数据段、堆、栈)中,并跳转到攻击代码上执行。操作系统将系统或应用程序的数据页标上NX位,一旦受到攻击导致恶意代码试图在数据页上运行,处理器就会产生异常,终止程序执行。不可执行技术在硬件实现上简单高效,已经广泛用于主流处理器中。