BUU re xor

        

从13行和18行的0x21(c规定十六进制必须用0x**表示)可以知道这个字符串就是33个字符

shift+e来提取出数组中的字符:  

      

设这个数组是global数组

global[] =

{

102, 10, 107, 12, 119, 38, 79, 46, 64, 17,

120, 13, 90, 59, 85, 17, 112, 25, 70, 31,

118, 34, 77, 35, 68, 14, 103, 6, 104, 15,

71, 50, 79, 0

};

我们已知:0^0=0 0^1=1 则对于任意x有0^x=x

还已知 若 a^b=c b=a^c=a^(a^b)=(a^a)^b=0^b=b  

按题目中的运算规则:
global[1] = v6[1] ^ v6[0]

global[2] = v6[2] ^ global[1] = v6[2] ^  v6[1] ^ v6[0]

v6[1] = global[1] ^ global[0] = v6[1] ^ v6[0]  ^ v6[0] =  v6[1]

v6[2] = global[2] ^global[1] = v6[2] ^ global[1] ^ global[1] =v6[2] 

…………

v6[i] = global[i] ^ global[i-1] = v6[i] ^ global[i-1] ^ global[i-1] = v6[i]

即 v6[i] = global[i] ^ global[i-1] 

那么脚本:

x="f"
a = [102, 10, 107, 12, 119, 38, 79, 46, 64, 17, 120, 13, 90, 59, 85, 17, 112, 25, 70, 31, 118, 34, 77, 35, 68, 14, 103, 6, 104, 15, 71, 50, 79 ,0]
for i in range(1,len(a)):
    x += chr(a[i]^a[i-1])
print(x)

 

猜你喜欢

转载自www.cnblogs.com/2019go5/p/12331981.html
xor
re