先检查,可以看到是32位没有壳
再用32位IDA打开,看strings百分之九十九有base64加密
发现是输入flag再通过一个函数(未知功能函数)处理,再经过简单加法计算得到一串字符e3nifIH9b_C@n@dH
动态调试,设置断点在调用未知功能函数后
可以看到输入的东西变成aW1hYmFkYm95
基本可以猜出是base64
直接写代码
import base64
str="e3nifIH9b_C@n@dH"
dest=''
for i in range(len(str)):
dest+=chr(ord(str[i])-i)
print(dest)
print(base64.b64decode(dest).decode('utf-8'))
得到flag{i_l0ve_you}