IDA main函数直接比较 所以我们需要去看看 start 函数 和init 函数
mian 函数中的 a2[1] 对应
根据 init 函数对应的 函数指针 发现 程序中的 strcmp 函数被修改了。
修改为 得到的输入 先 -一个数 然后 比较,
逆向过来 我们 知道是 zer0pts{********CENSORED********}
这个字符串 + 数组的值就能得到。
但是要注意一点就是 字符串和hex码存在 小端和大端的差别 相加十记得颠倒顺序
import binascii
'''
@Date: 2020-03-23 12:54:22
@LastEditors: 0XC4m3l
@LastEditTime: 2020-03-23 13:35:55
@FilePath: \\AISnakef:\\re\\Exercises\\[Zer0pts2020]easy strcmp\\exp.py
'''
data = [0x410A4335494A0942,0xB0EF2F50BE619F0,0x4F0A3A064A35282B]
string = ["********","CENSORED","********"]
flag = ""
for i in range(len(string)):
hex_str = binascii.b2a_hex(string[i][::-1])
a = hex((long(hex_str,16)+data[i]))[2:-1]
flag += binascii.a2b_hex(a)[::-1]
print flag
# l3ts_m4k3_4_DETOUR_t0d4y