NOP Sled 是什么?NOP Sled 简介

在计算机安全中,NOP slide、 NOP sled 或NOP ramp是一系列NOP(非操作)指令,意图当CPU程序分支到任何地方的内存地址时,将CPU的指令执行流程“slide”到其最终的期望目的地slide。

 

该技术在软件漏洞利用中常见用法,在分支指令目标未精确知道时用于指导程序执行。其他值得注意的应用包括防御性编程策略,如EMC感知编程。

 

如果NOP slide包含一系列规范的NOP指令,则该NOP slide将起作用,但此类代码的存在可疑且易于自动检测。由于这个原因,实际的NNOP slide通常由非规范的NOP指令组成(例如将寄存器移动到自身或者增加零[1]),或者只影响程序状态的指令,这使得它们更难以识别。

 

NOP slide的熵取决于对其的限制。如果可以确定某些寄存器未被使用(也就是说,它们将在下一次使用之前被设置为已知值),则可以在NOP slide中使用任意操作它们的指令。此外,如果NOP slide和指令指针的对齐都是确定性的,则可以在NOP slide中使用多字节指令,而不考虑未对齐执行的结果。如果提供要引入NOP slide和有效载荷的攻击矢量的输入被过滤(例如仅接受可打印字符),则包含的可能指令的字段是有限的。虽然作为体系结构扩展的一部分的指令(如SSE)可能经常与程序状态无关,它们不能用于以不支持扩展名的计算机为目标的NOP slide。

NOP Sled

 

存在许多技术来检测存在的NOP slide。

例如,在2005年,希腊研究人员发现,通过检查内存映像是否包含冗长的字节序列,以便序列中的每个起始偏移量都有效并将执行引导至相同位置,可以轻松检测到它们。

    A+
发布日期:2018年04月20日 17:57:26  所属分类:经验
最后更新时间:2018-04-20 18:01:47
付杰
  • ¥ 169.0元
  • 市场价:299.0元
  • ¥ 199.0元
  • 市场价:199.0元
  • ¥ 49.0元
  • 市场价:199.0元
  • ¥ 398.0元
  • 市场价:498.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: