题目来源:2023MOECTF
题目概述
大概就是要我们写一个程序来和这个二进制程序交互,还要使用到pwntools这个工具。
安装pwntools
上网搜索了一下,pwntools是python的一个库,支持python3 使用pip安装:
apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip #升级pip,可以不执行
python3 -m pip install --upgrade pwntools #可能会升级pip,而且使用国外源,比较慢
python3 -m pip install pwntools -i https://pypi.tuna.tsinghua.edu.cn/simple/ #使用国内源,不更新pip,建议使用这条
使用pwntools
稍微了解了一下pwntools的用法,基本够用:
send(data) #发送数据
sendline(data) #发送一行数据,相当于在末尾加\n
recv(numb=4096, timeout=default) #给出接收字节数,timeout指定超时
recvuntil("hello,world\n", drop=False) #接收直到我们设置的标志出现
#(以下可以看作until的特例)
recvline(keepends=True) #接收到\n,keepends指定保留\n
recvall() #接收到EOF
recvrepeat(timeout=default) #接收到EOF或timeout
interactive() #与shell交互