如何删除scapy数据包中的图层

问题描述 投票:0回答:2

我正在尝试删除 scapy 的子层,并且想知道如何选择子层?

就上下文而言,“多路径 TCP 选项”是我有兴趣删除的子层。如下所示,该层属于 scapy 中的 TCP 层。任何帮助都会很棒。

###[ TCP ]###
    sport     = http
    dport     = 35446
    seq       = 2431624968
    ack       = 3319728884
    dataofs   = 13L
    reserved  = 0L
    flags     = A
    window    = 233
    chksum    = 0xb518
    urgptr    = 0
    \options   \
     |###[ No Operation ]###
     |  kind      = NOP
     |###[ No Operation ]###
     |  kind      = NOP
     |###[ Timestamp ]###
     |  kind      = Timestamp
     |  length    = 10
     |  timestamp_value= 3970740631
     |  timestamp_echo= 11847444
     |###[ Multipath TCP option ]###
     |  kind      = MpTCP
     |  \mptcp     \
     |   |###[ Multipath TCP Data Sequence Signal ]###
     |   |  length    = 20
     |   |  subtype   = DSS
     |   |  reserved  = 0L
     |   |  flags     = AM
     |   |  data_ack  = 2484809684
     |   |  dsn       = 2431624968
     |   |  subflow_seqnum= 1429
     |   |  datalevel_len= 1428
     |   |  checksum  = 0xa08b
python scapy
2个回答
0
投票

我不确定,但是scapy有方法

remove_"e.g. payload"()
。也许您会在文档中找到更多信息。 TCPOptions 定义在 scapy->layers->inet.py 中。

另一种方法是构建一个新的 pcap。这是不干净的方式,但这也有效。


0
投票

我开发了一个工具,可以对 pcap 层进行更改。您可以使用它通过简单地提供其偏移来删除任何层。

例如要删除以太网层,

python3 modify_layers.py -i test.pcap -l "(0,14)"

工具:https://github.com/x00itachi/modify-pcap-pkt-layers

© www.soinside.com 2019 - 2024. All rights reserved.