BUUCTF Re [Zer0pts2020]easy strcmp

打开程序,没有输入只有输出

 于是使用IDA打开并远程调试

 主函数内部是一个简单的字符串比较,那么zer0pts{********CENSORED********}是flag,试了下发现不是。看了其他函数,也没有啥异常,于是动态调试一下

动态调试发现存在strcmp存在障眼法

于是查看55F37FE006EA函数

 

接下来就是编写脚本了,脚本如下

enc = "********CENSORED********"
m = [0x410A4335494A0942, 0x0B0EF2F50BE619F0, 0x4F0A3A064A35282B]
 
import binascii
 
flag = b''
for i in range(3):
    p = enc[i*8:(i+1)*8]
    a = binascii.b2a_hex(p.encode('ascii')[::-1])
    b = binascii.a2b_hex(hex(int(a,16) + m[i])[2:])[::-1]
    flag += b
print (flag)

[::-1]是因为小端排序

运行程序得到flag

flag{l3ts_m4k3_4_DETOUR_t0d4y}

 

posted @ 2021-10-02 15:55  bamboo1111  阅读(287)  评论(0)    收藏  举报