做题记录

逆向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,运行到最后,发现输出。
od输出
通过字符串查看,找到了有用的信息:
字符串查找结果
看到了flag.txt和Congrats You got it应该和flag相关,使用ida静态分析
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):
flag
待探索问题:
1、整个程序的完整运行流程
2、如何解决程序崩溃问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值