[Zer0pts2020]easy strcmp.zip

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