第一步 查壳,本题是64位,无壳。
第二步 查看主函数,点开看主函数,没什么东西。
左边表里面看到好几个i开头的函数(红色方框里面),点开看后每个函数的最后末尾(图中红色椭圆圈那里),而且一个对应下一个。
最后一个函数了
本题的flag应该就是a1数组里面字符拼成的一个字符串。
第三步 编写python脚本。
# 定义一个长度为33的列表,初始化为空字符串
a = [''] * 33
# 给特定的索引赋值
a[1] = 'c'
a[25] = '@'
a[27] = 'e'
a[4] = '2'
a[17] = 'r'
a[29] = 'f'
a[17] = 'r' # 注意:这里会覆盖之前的赋值
a[24] = '_'
a[2] = 't'
a[9] = 'c'
a[32] = '}'
a[19] = 'v'
a[5] = '0'
a[14] = 'n'
a[15] = 'd'
a[8] = '{'
a[18] = '3'
a[28] = '_'
a[21] = 'r'
a[0] = 'w'
a[6] = '2'
a[22] = 's'
a[31] = 'n'
a[12] = '_'
a[7] = '0'
a[16] = '_'
a[11] = 'p'
a[23] = 'e'
a[30] = 'u'
a[10] = 'p'
a[13] = '@'
a[3] = 'f'
a[26] = 'r'
a[20] = 'e'
# 打印列表中的每个字符
# 注意:这里应该使用range(33)
for i in range(33):
print(a[i], end='')
本题难度不大,仅仅只是将字符拼起来即可。
flag{cpp_@nd_r3verse_@re_fun}