很新一道题,结合了re和最基本的pwn栈溢出
前面就不说了
大家肯定都找到了这一步
异或得到Re_1s_So0_funny!
输入就到下一步
下一个函数到这里就要爆,程序卡住
学过一点pwn的
都可以知道
这里溢出了
而且刚好是16位的4个字符填充了缓冲区
然后返回地址
我也是最开始没弄懂
现在马后炮来看
32位是小端
这里的地址是40233d
对应的这里一个变种base64加密
import base64
y1=[0x23,0x61,0x3E,0x69,0x54,0x41,0x18,0x4D,0x6E,0x3B,0x65,0x53,0x30,0x79,0x45,0x5B]
y2=[0x71,0x04,0x61,0x58,0x27,0x1E,0x4B,0x22,0x5E,0x64,0x3,0x26,0x5E,0x17,0x3C,0x7A]
flag=''
for i in range(len(y1)):
flag+=chr(y1[i]^y2[i])
flag+=chr(0x3D)+chr(0x23)+chr(0x40)+str(base64.b64decode('YTFzMF9wV24='),encoding = "utf-8")
print(flag)
Re_1s_So0_funny!=#@a1s0_pWn