Spectre V1 PoC代码

时间:2018-07-22 16:41:38

标签: spectre poc

我尝试了解Erik August(https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6)的Spectre PoC。 在第76行中说

x = ((j % 6) - 1) & ~0xFFFF;

所以我知道&是按位AND,而~返回按位补码。如果j%60,我就会明白为什么x=FFF.FF0000。 但我想知道为什么在其他情况下使用x=0。为什么不是例如0xFFFF0001

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

〜0xFFFF给你0xFFFF_0000

(((j%6)-1)的结果可能是-1(0xFFFF_FFFF) 或0-4

对于0到4,如果您将其与0xFFFF_0000相加,则将为0。

示例:

0xFFFF_0000
0x0000_0001 
----AND----
0x0000_0000