背景:我编写了一个 python 脚本来检查 IP 数据包,特别是数据包的有效负载/数据,以检测它是否可以用于缓冲区(堆栈)溢出。现在据我了解,NOP sled 用于填充堆栈,以便指令指针最终会运行到您的漏洞利用代码中,我可以通过查找重复出现的 0x90 轻松检测到这一点。在 SQL slammer 的情况下,我已经看到有很多 NOP 命令的代码只有 8 个,所以我可能至少可以使用 8 个。
现在我的问题是,合法代码中经常使用 NOP 雪橇吗?如果答案是肯定的,是否有一些特定情况(这意味着我可以查找这些情况,然后将数据包排除为可能无害)还是这种方法对于识别恶意代码不实用?