一道reverse题目的wp的疑惑
问题一:在wp中flag = (((data ^ (data >> 15)) >> 15) & 0xfffffffc) | (data & 0x3);
为什么要第二次左移15位,并且异或0xfffffffc 再与 (data & 0x3)
问题二:
final = (*((char*)&flag + i)) & 0xff;
与 0xff向与是为了变成无符号数吗?
问题二:
& 0xff 超出Ascll值截取高位,不知道对不对 你的数据是64位,每4位对应一个字母表示的话,例如用ABCD表示数据
data >> 15 数据变为0ABC
data ^ 0ABC 等价于 ABCD ^ 0ABC 等价于 A(B^A)(C^B)(D^C)
>> 15 等价于 0A(B^A)(C^B)
& 0xfffffffc 等价于 0A(B^A)(C^B) 的最后两位归0
| (data & 0x3) 表示最后两位还是用D里面的最后两位
问题二:有没& 0xff 结果都是一样的,(*((char*)&flag + i))这个类型就是char, 没高位可以截取
codezhang 发表于 2023-11-14 10:23
你的数据是64位,每4位对应一个字母表示的话,例如用ABCD表示数据
data >> 15 数据变为0ABC
data ...
好的谢谢
页:
[1]