Arw*_*wez 2 python stdin stdout pwntools
您好,我有一个问题,我似乎找不到任何解决方案。(也许我只是不擅长用英语正确表达搜索)
我正在尝试使用 pwntools 从 python 执行二进制文件,并在自己发送一些输入之前完全读取其输出。
我的二进制文件的输出如下:
Testmessage1
Testmessage2
Enter input: <binary expects me to input stuff here>
Run Code Online (Sandbox Code Playgroud)
我想读取第一行、第二行和第三行的输出部分(“:”是最后一个字符)。
输出的第三行末尾不包含换行符,并希望用户直接输入。但是,无论我如何尝试,我都无法读取第三行开头的输出内容。
我目前尝试实现此目标的方法:
Testmessage1
Testmessage2
Enter input: <binary expects me to input stuff here>
Run Code Online (Sandbox Code Playgroud)
我是否误解了标准输入和标准输出?第三行的“Enter input:”不是我在输入之前应该能够接收到的输出的一部分吗?
提前致谢
我终于弄明白了。我从https://github.com/zachriggle/pwntools-glibc-buffering/blob/master/demo.py得到了我需要的提示
Ubuntu 似乎自己做了很多缓冲。当手动确保 pwnTools 对 stdin 和 stdout 使用伪终端时,它可以工作!
import * from pwn
pty = process.PTY
p = process(stdin=pty, stdout=pty)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28083 次 |
| 最近记录: |