xuenixiang_2019_re_Reverse1
File看文件信息, 拖入ida打开,找到程序入口,main函数,和关键函数strcmp(),encode() 发现是字符串s和enflag进行比较,一致则输出flag,而s是经过encode后的字符,我们先查看enflag() 将前三个字符 转化为ascii ,然后存放到一个数组里 得到了加密后的字符串, 接着查看encode()函数,看看它的加密算法 加密的过程是 将用户输入的字符串,拆分成了3组,每组进行异或和加减运算之后 累计到一个变量里,将这个变量跟enflag做比较。 所以写一个decode:nflag=v3=[]
v4=[]
v5=[]
v7=18
flag=''
for i in range(0,len(enflag),3):
v5.append((enflag^v7)-6)
v4.append((enflag^v7)+6)
v3.append(enflag^v7^6)
for j in range(v7/3):
flag+=chr(v5)+chr(v4)+chr(v3)
print flag
flag{w0wtqly0uW1n}
能不能把题目也上传
页:
[1]