xor
丢进ida
-
搜索字符串“flag”,可以得到以下
-
以上源码大致的意义就是,输入一个字符串v6,如果v6长度不等于33则失败;否则对v6进行以下操作:自下标1开始,第i位与第(i-1)位异或后再将值赋给第i位。得到的字符串与v3相同,则成功。
-
点击globals查看v3的信息
实际上就是字符串:"f kfw&O.@x11x Z;Ux11px19Fx1Fv"M#Dx0egx06hx0fG20"
利用python代码解出flag
v3 = "f
kfw&O.@x11x
Z;Ux11px19Fx1Fv"M#Dx0egx06hx0fG20"
flag = v3[0]
for i in range(1, len(v3)-1):
new = chr((ord(v3[i]) ^ ord(v3[i-1])))
flag += new
print(flag)
代码挺简单的,没啥好解释的。最后跑出的结果是
加个括号:flag{QianQiuWanDai_YiTongJiangHu}