当堆栈金丝雀就位而没有任何其他"帮助"时,是否有可能利用ROP ?绕过金丝雀值?如果有的话,你能提供一些资源/材料来进一步解释当一个人只使用ROP而没有任何其他技术时是如何做到的吗?
看情况。计算机有两种内存访问类型:
-
顺序存取:从缓冲区开始,您必须完全覆盖以下所有字节,直到
buf+len(payload)
- 这是随意写的。您可以覆盖确切地址处的值
可能你只考虑第一种情况,我很确定,没有任何"帮助",你无法绕过金丝雀。唯一的方法就是强制使用它的值。
在任意写入的情况下,这可能发生在格式字符串(一种旧类型的漏洞)或堆漏洞中,您只需覆盖堆栈以避免金丝雀地址。
注意::任意写入仍然很难实现