Intel在2004年2月18日宣布将从2004年下半年开始在CPU产品中采用防缓冲区溢出技术,可对付诸如冲击波之类的病毒。这种技术被命名为“No Execute(NX) memory protection”,这是Intel在IDF2004上宣布的。Intel没有公布将在何种CPU中使用该技术,从但是Intel透露的NXMP将配合HyperThreading技术的说法,很有可能采用在Prescott核心的Pentium 4处理器上。
NXMP技术将采用Intel的Itanium2结构,可以通过在转换物理地址和逻辑地址的页面编译台中添加NX位来实现NX。在CPU进行读指令操作时,将从实际地址读出数据,随后将使用页面编译台由逻辑地址转换为物理地址。如果这个时候NX位生效,会引发数据错误。
一般情况下,缓冲区溢出攻击会使内存中的缓冲区溢出,修改数据在堆栈中的返回地址。一旦改写了返回地址,则堆栈中的数据在被CPU读入时就可能运行保存在任意位置的命令。通常由于溢出的数据中包括程序,因此可能会运行非法程序。因此,操作系统在确保堆栈及缓冲区的数据时,只需将该区域的NX位设置为开启(ON)的状态即可防止运行堆栈及缓冲区内的程序。
AMD也曾在AMD64架构的CPU中使用了相同的结构。AMD官员表示该技术在第2季度发布的Windows XP SP2中被开启。由此判断Intel的NX技术也有可能会在Windows XP的Service Pack2中使用。