先file看一下格式
是个Linux 64位程序
随手运行一下
丢进IDA,一堆sub函数,没有看到main函数
按Shift+F12进入字符串窗口
搜索Give me the password
右键,查看交叉引用
跳转到sub_400F8E处
F5查看伪代码
主要逻辑代码就是上面的了
最后我们要进入Congras那个分支
Shift+E导出byte_6B4270的数据
a = [0x5F, 0xF2, 0x5E, 0x8B, 0x4E, 0x0E, 0xA3, 0xAA, 0xC7, 0x93, 0x81, 0x3D, 0x5F, 0x74, 0xA3, 0x09,
0x91, 0x2B, 0x49, 0x28, 0x93, 0x67]
flag = ''
for i in range(22):
v6 = i + 1
v10 = 0
v11 = 0
while v10 < v6:
v10 = v10 + 1
v11 = 1828812941 * v11 + 12345
flag += chr((a[i] ^ v11) & 0xff)
print(flag)
"""output
flag{d826e6926098ef46}
"""