背景
活到老,学到老,每天进步一点点。 ? 有点记不清楚这个过滤技巧,是学自哪了,可能是国外某个大神的案例视频,也有可能是 Wireshark SharkFest 大会上的分享视频,总之这个过滤技巧真的是绝,谁用谁知道。 ? 万能格式如下:
a == ${a}
实例
本实例数据包如下,包含有两条 TCP Stream 0 和 1 。
正常来说,我们分析某个数据包文件时,可能会存在有多条 TCP 流或者 UDP 流(wireshark 中定义说法)。当需要根据某条流做具体内容分析时,一般也有两种方式:
1. TCP Stream Num 方式
tcp.stream == 1
2. 追踪流方式
然后就是本文要重点介绍的方式了,a == ${a} ,当然具体到本实例,实际表达式为:
tcp.stream == ${tcp.stream}
该方式在数据包列表中任意点选某条 TCP Stream 中的一个数据包后,通过应用 tcp.stream == ${tcp.stream} 显示过滤表达式后,即可过滤出整条 TCP Stream。 ? 当然每次在显示过滤器栏中输入 tcp.stream == ${tcp.stream} ,肯定要比输入 tcp.stream == 0 Num 的方式要麻烦,但是可以结合过滤器按钮用啊, 天作之合不是 🤣 。
使用方式完整如下,一图胜千言。
扩展
当然,一直在强调是万能格式, 你想怎么扩展使用都可以,简单举例如下 ?
1. 以太网类型过滤
eth.type == ${eth.type}
eth.type != ${eth.type}
譬如快速过滤是或非 ARP、IPv4 等数据包。
2. IP 地址过滤
ip.src == ${ip.src}
ip.dst == ${ip.dst}
ip.addr == ${ip.src}
ip.addr == ${ip.dst}
根据 IP 源或目的地址快速过滤。
注:由于 IP 地址存在多个字段值,ip.addr == x.x.x.x 实际是表示匹配指定源或目的 IP 的数据包,但 ip.addr== ${ip.addr} 无法使用,因为实际上是没有 ip.addr 字段的 。
3. 会话过滤
(ip.src == ${ip.src} and ip.dst == ${ip.dst}) or (ip.src == ${ip.dst} and ip.dst == ${ip.src})
4. IP ID 过滤
ip.id == ${ip.id}
快速查找重复 IP ID 的数据包。
??
学会了嘛?
感谢阅读,更多技术文章可关注个人公众号:Echo Reply ,谢谢。
|