在我们遇到的每一个需要输入输出的pwn题中一般都会有下面这几条语句
setvbuf(stdin, 0LL, 2, 0LL);
setvbuf(stdout, 0LL, 2, 0LL);
setvbuf(stderr, 0LL, 2, 0LL);
直到今天才彻底搞明白这三句话的作用。
因为我们搭建pwn题一般都是用socat进行端口转发,pwn题搭建详情
但是socat不是一次写一行而是一次写一个缓冲区
所以我们可以通输入参数type=2(行缓冲)的setvbuf来使得每次从流中读入一行数据或向流中写入一行数据。
本文深入解析了setvbuf函数在Pwn题目中的应用,特别是在socat端口转发场景下,如何通过设置缓冲类型为行缓冲,实现每次读写一行数据的效果,以增强与程序的交互效率。
1381





