BUUCTF xor解题思路
1.老流程了,F5反编译得到伪代码

2.分析伪代码,大致可以看出是为了比较两个数值串,如18.19行中是在比较v6和global

3.找到方向以后就可以顺藤摸瓜找v6和global这两个字符串究竟是什么,首先v6跟我们输入的有关,global可以点进去看到是这个


双击此处
4.global:

5.反观伪代码发现v6需要经过反转,这里采用的是c语言当中的异或关系

6.可知将global反转后就能得到flag
使用以下代码可将其反转
1 s = ['f',10,'k',12,'w&O.@',17,'x',13,'Z;U',17,'p',25,'F',31,'v"M#D',14,'g',6,'h',15,'G2O',0] 2 3 ss = 'fkw&O.@xZ;UpFv"M#DghG2O' 4 5 x = "f" 6 7 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] 8 9 for i in range(1,len(a)): 10 x += chr(a[i]^a[i-1]) 11 12 print(x)
得到flag


浙公网安备 33010602011771号