当前位置: 首页 > news >正文

TCP 扫描中的“有效响应”过滤器解析

在实现 TCP 半连接扫描(SYN 扫描)时,我们常常希望只抓取“有用的响应”,也就是目标端口开放或关闭的标志包,而忽略其他无关数据。


1️⃣ 核心过滤条件

tcp[13] & 0x12 != 0 or tcp[13] & 0x04 != 0

这句 BPF(Berkeley Packet Filter)表达式的作用是只抓“有效响应”的 TCP 包。我们来拆解一下。


2️⃣ tcp[13] 是什么?

TCP 头部从第 0 字节开始计数,第 13 字节就是 控制位(flags),用 8 个二进制位表示每种标志:

比特位76543210
含义--UAPRSF

重点关注三种标志:

  • S(比特位 1):SYN,表示连接请求/响应
  • A(比特位 4):ACK,表示确认
  • R(比特位 2):RST,表示重置连接(端口关闭时返回)

3️⃣ 过滤逻辑解析

3.1 SYN-ACK 包(端口开放)

tcp[13] & 0x12 != 0
  • 0x12 十六进制 → 二进制 00010010
  • S 位(1)和 A 位(4)为 1 → 对应 SYN-ACK
  • & 按位与运算 → tcp[13] 中这两个位有一个为 1,结果就不为 0

所以这个条件 只匹配端口开放时返回的 SYN-ACK 包


3.2 RST 包(端口关闭)

tcp[13] & 0x04 != 0
  • 0x04 十六进制 → 二进制 00000100
  • R 位(2)为 1 → 对应 RST
  • & 按位与运算 → tcp[13] 中 R 位为 1,结果不为 0

所以这个条件 只匹配端口关闭时返回的 RST 包


4️⃣ 总结

整个过滤器的意思:

  • 只抓有用响应:SYN-ACK(开放)或 RST(关闭)
  • 过滤掉无关数据:其他协议、其他 IP 或无关 TCP 包
  • 提升效率:扫描器只处理目标端口返回的关键包,节省时间和资源
http://www.dtcms.com/a/549604.html

相关文章:

  • 我用ChatGPT,给RabbitMQ加了个连接池
  • 做电脑网站手机能显示不出来怎么办you物公馆网站建设
  • Rust 所有权:内存安全的基石与实践指南
  • PostGreSQL 数据库,备份和恢复命令,使用pg_dump命令备份
  • 蓝桥杯高校新生编程赛第二场题解——Java
  • 深入理解XXE外部实体注入漏洞:原理、利用与防护
  • 用 CTE 重构嵌套子查询:让复杂报表 SQL 可读性提升 80%
  • 做阿里云网站的公司吗南昌做网站后台投票
  • Docker 容器命令深度解析:从docker run到docker ps的精通之路
  • 开源自动驾驶平台全景:超越Autoware和Apollo
  • 深入JVM:让Java性能起飞的核心原理与优化策略
  • RFID 技术赋能汽车制造:发动机气缸缸体生产线智能化升级案例
  • Java Excel页面设置配置指南
  • 网站集约化建设做法ecommercial+wordpress
  • C#:调试附加到进程
  • Redis哈希槽
  • SAP PP BOM查询报表分享
  • 国内 扁平化 网站坂田杨美企业网站建设
  • 抖音火花任务自动化脚本
  • 从入门到实践:Linux 基础学习(xshell)
  • 《URP管线主导的角色材质、阴影与显存动态适配优化方案》
  • TensorFlow深度学习实战——自定义图数据集
  • Flutter 3.29.0 使用RepaintBoundary或者ScreenshotController出现导出图片渲染上下颠倒问题
  • Flutter---个人信息(4)---实现修改生日日期
  • 不止于加热:管式炉在材料科学与新能源研发中的关键作用
  • 深圳网站建设方案优化深圳发布广告的平台有哪些
  • Go语言中json.RawMessage
  • Pytorch常用函数学习摘录
  • 个人什么取消网站备案铭万做的网站怎么样
  • 2025-10-30 ZYZOJ Star(斯达)模拟赛 hetao1733837的record