问题描述
目前,我正在使用pwn库来获得结果,但是我必须删除所有外部依赖关系,以使脚本可在任何POSIX兼容操作系统上运行。
python伪代码与此类似:
from pwn import *
msg1 = "message"
p = process("./a.out")
p.recvline()
p.sendline(msg1)
p.recvline()
reply = p.recvline()
msg2 = foo(reply)
p.recvline()
p.sendline(msg2)
p.recvline()
p.interactive()
我尝试使用以下脚本对此进行仿真:
#!/bin/sh
_read() {
if [ $# != 0 ]
then
read
else
read REPLY
fi
}
IN="/tmp/pipein"
OUT="/tmp/pipeout"
rm -fr $IN $OUT
mkfifo $IN $OUT
MSG1="message"
./a.out <$IN >$OUT &
exec 3>$IN # Using a file descriptor the pipe won't close after a write
_read <$OUT
echo "$MSG1" >$IN
_read <$OUT
_read <$OUT
MSG2=foo $REPLY
_read <$OUT
echo "$MSG2" >$IN
_read <$OUT
exec 3>&-
rm $IN $OUT
但这有两个主要缺陷:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)