下载压缩包,发现里面有两个文件
一个是没什么用的falg格式参考文件
另一个就是题目本体
运行试试
需要输入字符获取flag
先查壳
32位文件,无壳
直接拖入IDA
程序结构很简单
直接就可以看到刚才程序显示的文本
F5反汇编看看
发现if判断里调用了sub_401050
查看源码
发现v1=sub_401020,v2=sub_401000
后续的v4=byte_403078可以知道v4是关键
OD调试一下
简单翻一下汇编语句
发现老熟人401000
直接下断点
F8逐步运行下
可以发现V4对应的是4
那么解密密钥就是4
回到IDA查看加密数据
使用大佬的exp解密
rflag = [0x0D,0x26,0x49, 0x45, 0x2A, 0x17, 0x78, 0x44, 0x2B, 0x6C, 0x5D,0x5E, 0x45, 0x12, 0x2F, 0x17, 0x2B, 0x44, 0x6F, 0x6E, 0x56, 0x9,0x5F, 0x45, 0x47, 0x73, 0x26, 0x0A, 0x0D, 0x13, 0x17, 0x48, 0x42,0x1, 0x40, 0x4D, 0x0C, 0x2, 0x69, 0x0]
flag = ""
rflag_len = len(rflag)-1
for i in range(len(rflag)):
if i==0:
rflag[rflag_len - i] = rflag[rflag_len - i] ^ 0x4
rflag[rflag_len - i - 1] = rflag[rflag_len - i - 1] ^ rflag[rflag_len - i]
flag += chr(rflag[rflag_len - i])
print(flag[::-1])
得到flag
flag{R_y0u_H0t_3n0ugH_t0_1gn1t3@flare-on.com}
提交
结果正确
参考文章[原创]BUUCTF逆向题:[FlareOn4]IgniteMe-CTF对抗-看雪-安全社区|安全招聘|kanxue.com