使用pwntools的remote模块的send函数报EOFError原因及解决方法

一直没有自己的模板,每次做题都是现写脚本,偶尔会遇到
在这里插入图片描述
send数据时报错EOFError的情况
源代码大概是这样

r = remote("0.0.0.0",6666,level='debug')
cc = r.recvall()
pov = f61d.prove(cc)
r.sendline(pov.encode())

本以为是sendline函数自动加的self.newline,而win和linux的换行符不同而引起的EOFError
但是怎么改都是报错

在这篇文章中https://blog.csdn.net/weixin_52321473/article/details/122901902受到一点启发,去源码里找了找
Lib\site-packages\pwnlib\tubes\tube.py中看到这么一段话
在这里插入图片描述

If it is not possible to send anymore because of a closed
connection, it raises exceptions.EOFError

以及
在这里插入图片描述
之所以报错,并不是什么bug,而是连接关闭了。
迷了,最后发现问题出在recvall()函数
在这里插入图片描述
请添加图片描述
它自动给我close了
所以把recvall函数换掉就行了
改成recvline或者recvuntil

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值