我试着理解埃里克·奥古斯特(https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6)的<幽灵PoC >。在第76行,它说
x = ((j % 6) - 1) & ~0xFFFF;所以我知道&是按位AND的,而~返回的是按位补码。如果j%6是0,我明白为什么是x=FFF.FF0000了。但我想知道为什么在其他情况下使用x=0。为什么不是例如0xFFFF0001
谢谢你的帮忙!
发布于 2018-09-28 05:12:22
~0xFFFF为您提供0xFFFF_0000
((j%6) - 1 )的结果可以是-1 (0xFFFF_FFFF)或0-4
对于0到4,如果将其与0xFFFF_0000进行AND运算,结果将为0。
示例:
0xFFFF_0000
0x0000_0001
----AND----
0x0000_0000https://stackoverflow.com/questions/51467200
复制相似问题