做题目遇到的两种 eof 信号需求情况:

  1. 发送 eof 之后,后续不需要继续输入(vnctf-White-Give-Flag)
  2. 发送 eof 之后,后续还需要继续输入(mtctf-blind)

eof 发送后继续输入

不用 mtctf-blind 做例子,因为利用 eof 绕过第一层之后,由于题目其他方面而无法 getshell ,用一个 demo 例子(来源)代替:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main(void) {char buf[24];while(1) {if(read(0,buf,16)==0) {break;}}read(0,buf,1000);return 0;
}

题目要求第一个 read 返回值为 0 ,也就是输入字符串长度为 0 ,才能到达下面的 read 栈溢出漏洞。eof 发送脚本如下:

from pwn import *
import tty
p = process("./eof_1",stdin=PTY,raw=False)
p.send(chr(tty.CEOF))
p.clean()

发送完 eof 之后,输入通道没有关闭,依然可以输入。

参考资料

  • https://github.com/Gallopsled/pwntools/issues/985
  • https://stackoverflow.com/questions/66011026/how-to-send-an-eof-to-a-process-server-in-pwntools
  • https://docs.pwntools.com/en/stable/tubes.html#pwnlib.tubes.tube.tube.shutdown

eof 发送后不在输入

直接看 vnctf-White-Give-Flag 就行,输入 eof 目的是让返回值为 -1

p = remote(xxxx,xx)
p.sock.shutdown(socket.SHUT_RW)
# or
# p.shutdown_raw('send')

参考资料

  • https://paper.seebug.org/444/

与read返回值关系

特殊情况就是让返回值等于 0 或者返回值小于 0 两种,两种情况分别对应:

  • 返回值等于 0 ==> eof 发送后继续输入
  • 返回值小于 0 ==> eof 发送后不在输入

pwntools发送eof信号相关推荐

  1. linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用

    linux的信号,可以用于进程间通信,还可以用于系统向进程发送命令.比如当系统关机的时候,需要通知每一个进程做善后工作,系统会对每个进程发送SIGTERM信号.进程在收到信号之后就会做一些清理动作.你 ...

  2. android手机红外代码HAL,手机红外遥控器发送红外信号到STM32【HAL库】

    现在大部分手机上都有红外遥控功能,而且好像大部分信号STM32都是可以收到的.现在就使用STM32发送红外信号,由STM32上的红外接收器接收后执行不同的操作.以下是注意事项: 在标准库中有  EXT ...

  3. android自动发送dtmf,Android通话中发送DTMF信号

    由于android中sdk没有提供相关功能,所以在Android中如果要自定义拨号盘发送DTMF信号,需要通过反射调用相关方法,并且需要系统签名还有运行在phone进程中,同时需要phone进程的ui ...

  4. ARM 裸机程序学习 03 - 发送SOS信号(汇编 + C)

    之前的两个示例程序都是完全由汇编编写的,而这次的示例程序由汇编和C语言写成并编译. 汇编自有汇编的优点,比如你可以非常清楚地知道CPU在执行每条指令时到底做了什么,怎么做的,数据到底保存在哪儿等等,但 ...

  5. 组合键 发送指定信号_Django signal 信号机制的使用

    Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作 一.Django中内置的 signal 类型主要包含以下几 ...

  6. 如何利用python dbus来发送一个信号

    http://blog.csdn.net/sahusoft/article/details/5931905 简介 dbus用于进程间通信,可以降低不同程序间的耦合性,dbus的原理同分布式计算很象,其 ...

  7. ping端口怎么ping_英雄联盟手游ping信号怎么发送 ping信号发送方法介绍_游戏攻略...

    伙伴不知道英雄联盟手游ping信号是什么意思?怎么发,在英雄联盟手游中每个信号都是至关重要的,作为一个召唤师不会发信号,那可是一件大事,下面小编就给大家带来<英雄联盟手游>ping信号发送 ...

  8. qlistwidget窗口隐藏会发送什么信号_为什么wifi连的人越多,就越慢?

    生活中,我们经常会遇到wifi连的人越多,网就会变慢的情形.下面小速带您一起来探寻背后的原因. △:有线网络,一根网线上用的人多了怎么避免冲突? CSMA/CD应用在OSI 的数据链路层,它的工作原理 ...

  9. java 发送信号_java – 在Windows中发送任意信号?

    如果你想要的是明确地/编程性地杀死任何类型的程序/进程,在SysInternals的pstools中有一个名为"pskill"的小工具,就像Unix"kill" ...

最新文章

  1. R语言生成仿真的3D高斯簇数据集、使用scale函数进行数据缩放、并使用KMeans进行聚类分析、数据反向缩放并比较聚类生成的中心和实际数据的中心的差异、预测新的数据所属的聚类簇
  2. Android用户界面开发(2):ListView
  3. linux命令老是忘记,Linux可能会忘记的命令整理
  4. HTML 表格中的行合并与列合并
  5. RUNOOB python练习题12 找素数问题
  6. SPP-net论文笔记
  7. 手把手教你最好用的数据分析方法,会用的没几个
  8. RDP报表工具数据字典配置及使用说明
  9. 英伟达驱动更新记录_英伟达更新驱动最好的方式 - 卡饭网
  10. 计算机在网络通信方面的应用,分析计算机技术在通信中的应用
  11. matlab x轴特殊符号,matlab中的特殊符号
  12. Android双目摄像头(带人脸检测)正确调用姿势
  13. 2018 06 01 第一次博客 自然语言处理
  14. 山东职业学院计算机专业,山东职业学院最好的专业是什么(10大热门专业排名)...
  15. 【OpenCV-图像处理】用sift特征点算法和ransac算法进行多幅图像的拼接
  16. clio7.0测试软件如何安装,clio珂莱欧气垫怎么换替换装?4个步骤轻松安装
  17. 电脑报2013年第4期
  18. linux_驱动_V4l2层_camera_应用层调用流程_MIPI协议包格式简介
  19. 为什么汽车的中控屏不能用平板代替?
  20. redux-thunk 源码解读

热门文章

  1. 央企招聘:新华社2023年校园招聘公告
  2. 数据结构——二路归并排序和基数排序
  3. 【安全科普】AD域安全协议(三)LDAP
  4. 【竞赛篇-经费奖金退税】怎么把国创(大创)经费和学校奖金交的税退出来?
  5. 【安装版】Win8.1专业版系统资源_ISO_ESD格式镜像
  6. 政考网:公务员考试常识100题,你能答对几个?
  7. 计科专业c语言重修,计算中心
  8. Linux下安装libsodium,启用ss的chacha20高级加密
  9. MATLAB教程三:MATLAB程序流程控制
  10. 华为防火墙做单臂路由_华为-VLAN间路由:VLANIF+单臂路由(子接口)-释然