使用Scapy划分SCTP块

2024-09-28 21:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用Scapy来划分SCTP包,但我只能将一个包分成不同的层。 如何将SCTP分成不同的块? 例如,在Scapy中使用show(),我知道SCTP中有两个块,但我不知道如何获取这两个块。 two chunks in SCTP packet

有没有办法在同一层中划分块?或者可以将show()中的信息存储到数组中吗? 谢谢^^

SCTP packet structure


Tags: in信息packetshow数组structurechunksscapy
1条回答
网友
1楼 · 发布于 2024-09-28 21:23:53

你应该能够像遍历层一样遍历块。在

使用如下方法:

def expand(pkt):                                                                
    payload = []                                                                
    for p in pkt.payload:                                                       
        payload+=expand(p)                                                      
    return [pkt.name, payload]    

print(expand(pkt))                                                      
print(pkt.payload.payload.payload.name)    

对于SCTP包,我得到:

^{pr2}$

编辑: 对于内容:

>>> print(pkt[SCTP][1])                                                     

b'\x03\x00\x00\x10\x7f\x8cD\x18\x00\x01\xa0\x00\x00\x00\x00\x00'

>>> print(pkt[SCTP][1].show())   

###[ SCTPChunkSACK ]###
  type      = sack
  flags     = 0x0
  len       = 16
  cumul_tsn_ack= 0x7f8c4418
  a_rwnd    = 106496
  n_gap_ack = 0
  n_dup_tsn = 0
  gap_ack_list= []
  dup_tsn_list= []

所以您已经在pkt[SCTP][1:]上有了块的(嵌套)列表。在

相关问题 更多 >