这道题做到最后一步没做出来,差一点好气。。。
ELF文件,虚拟机打开执行一下:
输入之后回车会直接结束程序,ida打开,分析一下主函数:
函数逻辑比较清晰,关键函数在第29行的lol函数:
其中a1是已知字符串,即"69800876143568214356928753",直接将这些字符转化为对应的ascll值,再进行运算,最后将值赋给v2数组即可,即我们需要的flag。
a1 = '69800876143568214356928753'
a1 = list(map(ord,a1))
v2 = [0]*7
v2[0] = 2 * a1[1]
v2[1] = a1[4] + a1[5]
v2[2] = a1[8] + a1[9]
v2[3] = 2 * a1[12]
v2[4] = a1[18] + a1[17]
v2[5] = a1[10] + a1[21]
v2[6] = a1[9] + a1[25]
print("".join(map(chr,v2)))
运行得到flag:rhelheg
RCTF{rhelheg}