学习笔记如下链接
攻防世界 Reversing-x64Elf-100-优快云博客
下载附件
再用ExeinfoPE查壳
该文件不是 Windows 可执行文件(NOT Win EXE),而是 ELF 可执行文件,64 位目标文件,由 GCC(Ubuntu 4.8.4 版本)编译,CPU 为 AMD x86 架构。
拖入IDA分析
点击main 再按F5
代码主要功能是提示用户输入密码,然后调用sub_4006FD
函数来验证输入的密码是否正确。根据验证结果,程序会输出相应的提示信息(“Incorrect password!” 或 “Nice!”),并返回相应的退出状态码(1 表示密码错误,0 表示密码正确)。
大佬推测flag在约束条件中,所以我们双击sub_4006FD函数
想要破解这个密码验证机制,可以通过逆向计算出正确的密码。根据验证条件,正确的密码字符应该是 (&v3)[i % 3][2 * (i / 3)] - 1。
v3 = "Dufhbmf"
v4 = "pG`imos"
v5 = "ewUglpt"
strings = [v3, v4, v5]
password = ""
for i in range(12):
selected_string = strings[i % 3]
char_index = 2 * (i // 3)
correct_char = chr(ord(selected_string[char_index]) - 1)
password += correct_char
print("正确的密码是:", password)