发布于 2018-01-11 16:27:37
results[]做了什么练习
这不是一门精确的艺术。对于不是victim_function命中的索引,缓存可能会被击中。这个阈值可能会导致边缘结果。
因此,当代码认为有缓存命中时,代码将运行999次攻击,并增加结果混合_我。然后,它选择结果值最高的结果(最期望的缓存命中),并假定这是受害者字节的正确值。
当mix_i表示缓存命中地址的字节时,它为什么会命中缓存?
mix_i只是洗牌的一种方式。
for (i = 0; i < 256; i++) {
mix_i = ((i * 167) + 13) & 255;
...
}上述结果使mix_i被初始化为0-255之间的每个值一次,而不是按0、1、2、3的顺序初始化(如我所示)。这样做是出于注释中所述的原因-- 防止跨距预测;
https://security.stackexchange.com/questions/177365
复制相似问题