Loading

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

 

 

 

posted @ 2021-07-30 19:51  adsarea  阅读(1395)  评论(0)    收藏  举报