如何解决带有shell脚本的IPC没想到
目前,我正在使用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 举报,一经查实,本站将立刻删除。