作者:亲爱one | 来源:互联网 | 2023-07-25 07:41
完全没有理由要使它具有确定性,实际上,没有确定性可以带来一些好处,例如,增加利用漏洞的复杂性(另请参见本文)。
这种随机性可能有助于使漏洞更难编写。要成功利用缓冲区溢出,通常需要做两件事:
- 将有效负载传送到可预测/已知的内存位置
- 使执行跳转到该位置
如果内存位置不可预测,则跳转变得非常困难。
标准§7.20.3.3/ 2中的相关引用:
malloc函数为大小由大小指定且值不确定的对象分配空间
如果要使其具有确定性,那么可以这样明确地指出。
即使今天看起来是确定性的,我也不会打赌它会保留下来,所以使用更新的内核或更新的libc / GCC版本。