南京邮电大学-RE-你可能需要一个好的MAC

将文件拖进IDA,进入main函数F5反编译。题目非常简单,读入一串字符长度限制是56,然后经过一系列的函数处理后等于某个已知的字符串。

其中memcpy()函数,可以查到。

__strcpy_chk()函数,将v4拷贝到input。

话不多说直接在IDA中使用脚本逆向。

b=[]
for i in range(0,56):
    b.append(Byte(0x100000ED0+i*4))
for i in range(0,56):
    b[i]^=0xDE
for i in range(0,16):
    b[i+40]^=0xEF
for i in range(0,10):
    b[i+30]^=0xAB
for i in range(0,10):
    b[i+20]^=0xEF
for i in range(0,10):
    b[i+10]^=0xBE
for i in range(0,10):
    b[i]^=0xAD
print("flag is")
flag=""
for i in b:
    flag+=chr(i%128)
print(flag)

结果:

猜你喜欢

转载自blog.csdn.net/qq_38025365/article/details/82625266