https://github.com/Gallopsled/pwntools/issues/985
根據這個issue,要做到我們按Ctrl-D相同的效果,就要把process設成下面這樣
r = process(“./a.out”, stdin=process.PTY, raw=False)
r.send(chr(tty.CEOF)) // 傳送EOF
但要注意,改成這樣以後會有很多特殊字元都不能直接傳送,以下的list就是該fd的特殊字元
import(termios) print(termios.tcgetattr(p.stdin.fileno())) # [0, 4, 191, 2608, 15, 15, [b'\x03', b'\x1c', b'\x7f', b'\x15', b'\x04', 0, 1, b'\x00', b'\x11', b'\x13', b'\x1a', b'\x00', b'\x12', b'\x0f', b'\x17', b'\x16', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00']]
但這個方法似乎只有用process的時候可以通,而要怎麼通過socket傳送,目前我還沒查到lol