1.一种微处理器,包括:
一指令高速缓存;
一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作NOP指令的一连续序列检测不动作NOP滑动;以及
其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测到NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的;
其中当NOP滑动导致壳码shellcode时,暂停执行指令的第一数据流防止壳码shellcode的执行。
2.如权利要求1所述微处理器,其中指令的第二数据流是操作系统例外处理程序。
3.如权利要求1所述的微处理器,其中该微处理器用以通过产生无效运算码错误、机器检查例外、安全例外动作或通过离开虚拟机器模式来响应检测到NOP滑动。
4.一种由一微处理器执行的用于防止壳码shellcode的执行的方法,该微处理器包括一指令高速缓存及一硬件状态机,该方法包括:
利用该硬件状态机通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作NOP指令的一连续序列检测不动作NOP滑动;以及
通过从指令的第一数据流向指令的第二数据流转移控制来响应检测到NOP滑动,其中指令的第二数据流不是从指令高速缓存撷取的指令的第一数据流的一部分或不是从其得到的;
其中当NOP滑动导致壳码shellcode时,暂停执行指令的第一数据流防止壳码shellcode的执行。
5.如权利要求4所述的方法,其中指令的第二数据流是操作系统例外处理程序。
6.如权利要求4所述的方法,其中响应检测到NOP滑动包括:产生无效运算码错误、机器检查例外、安全例外动作或通过离开虚拟机器模式。