一直没有自己的模板,每次做题都是现写脚本,偶尔会遇到
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 raisesexceptions.EOFError
以及
之所以报错,并不是什么bug,而是连接关闭了。
迷了,最后发现问题出在recvall()
函数
它自动给我close了
所以把recvall
函数换掉就行了
改成recvline
或者recvuntil