在scapy中绑定自定义图层

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在scapy中绑定自定义图层相关的知识,希望对你有一定的参考价值。

我有一个python脚本,它将AVB(IEEE)数据包组装并发送到网络中。数据包将被wireshark捕获。使用其他python脚本,我遍历捕获文件。但我无法在几层中访问一些参数,因为scapy不知道它们。所以我必须将这些图层添加到scapy中。

这是wireshark中的数据包:enter image description here

我将以下代码添加到文件“python2.7 / dist-packages / scapy / layers / l2.py”

class ieee(Packet):
  name = "IEEE 1722 Packet"
  fields_desc=[ XByteField("subtype", 0x00),
                XByteField("svfield", 0x81),
                XByteField("verfield", 0x81)]

bind_layers(Dot1Q, ieee1722, type=0x22f0)

当我执行应该抓取新层(IEEE 1722协议)中的参数的python脚本时,会发生以下错误:“IndexError:Layer [ieee1722] not found”

怎么了?

答案

好的,通过编辑类型值找到解决方案:

  bind_layers(Dot1Q, ieee1722, type=0x88f7) ---> works

Dot1Q是创建的ieee1722层之上的层(请参阅wireshark)。您可以通过在wireshark中单击数据包层来查看类型值。

以上是关于在scapy中绑定自定义图层的主要内容,如果未能解决你的问题,请参考以下文章

android MVP - 我可以有多个演示者用于自定义视图和片段

android数据绑定与自定义视图

如何在 Toad for Oracle 中使用自定义代码片段?

Visual Studio 自定义代码片段在方法定义的参数列表中不起作用

VSCode 配置 用户自定义代码片段 自定义自动代码补充

VS Code中自定义Emmet代码片段