xor
无壳,用ida打开,F5看伪代码。
输入的v6的长度为33,也就是flag的长度。从第二项开始,每一项都与前一项异或之后得到的v6再和v3比较,相同得Success。
现在查看v3是什么
给了一堆字符串,将他们导出正好为33个
根据题意编写脚本
s = [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]
flag = "f"
for i in range(1,len(s)):
flag += chr(s[i]^s[i-1])
print(flag)
运行得到
flag{QianQiuWanDai_YiTongJiangHu}
reverse3
无壳,F5看伪代码
输入一个字符串str经过变换成为str2,相等则处right flag。
那么看看怎么变换的
跟进,可以看出为base64加密
这一句是加密后的str经过位移
最终得到str2,跟进得到str2为
编写脚本
import base64
str2 = "e3nifIH9b_C@n@dH"
str1 = ""
for i in range(len(str2)):
str1 += chr(ord(str2[i])-i)
flag = base64.b64decode(str1)
print(flag.decode())
运行得到
最终flag为:flag{i_l0ve_you}