从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=""
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(len(a)-1):
x += chr(a[i]^a[i-1])
print(x)