逆向key
题目传送门:https://adworld.xctf.org.cn/task/answer?type=reverse&number=4&grade=1&id=5006
题目附件百度网盘链接:https://pan.baidu.com/s/1T6kop6eH4FfeFjU51NvWKw
提取码:gd7a
wp
运行key.exe,程序输出一闪而过,程序崩溃。通过peid查壳,无壳。将其放入OD,运行到最后,发现输出。
通过字符串查看,找到了有用的信息:
看到了flag.txt和Congrats You got it应该和flag相关,使用ida静态分析
主函数很简单:
找到函数sub_401100,发现Wrong key 和 Congrats You got it提示代码,两个判断语句,那么函数sub_402A00很有可能是一个关键的判断函数。
通过查看函数的参数,发现参数v13有一些不同。
根据函数sub_4021E0的函数逻辑和给出的Memory和v50,给出脚本:
s1="themidathemidathemida"
s2=">----++++....<<<<."
flag1=""
flag=""
for i in range(len(s2)):
flag1 += chr((ord(s1[i])^ord(s2[i]))+22)
for i in range(len(flag1)):
flag += chr(ord(flag1[i])+9)
print(flag)
注:由于排序规则,需要将字符串逆序导出,附上逆序代码:
#python解决字符串倒序输出
str1 = '<<<....++++---->'
for i in range(len(str1)):
print(str1[len(str1)-1-i],end='')
最后得到结果(flag):
待探索问题:
1、整个程序的完整运行流程
2、如何解决程序崩溃问题