在Scapy中更改数据包字节序

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

我已经在Scapy中创建了一个自定义层,该层代表数据包的Little Endian格式。

class test_layer(Packet):
    name = "test"
    fields_desc = [
        BitField('A', 0, size=10),
        BitField('B', 0, size=6),
        BitField('C', 0, size=11),
        BitField('D', 0, size=5)
    ]

我创建一个新数据包

pkt = test_layer(A=1021, B=33, C=816, D=3)

导致FF 61 66 03的十六进制转储>

在发送数据包之前,我需要进行16位Big Endian交换,所以我最终得到61 FF 03 66

由于层中字段的奇数位大小(10、6、11、5),我不能只是对字段重新排序。例如,如果我将A,B,C,D重新排序为B,A,D,C,则十六进制显示为87 FD 1B 30。

关于如何实现此目标的任何建议?

谢谢

我已经在Scapy中创建了一个自定义层,该层代表数据包的Little Endian格式。 class test_layer(Packet):name =“ test” fields_desc = [BitField('A',0,size = 10),...

python scapy packet
1个回答
0
投票

如果将大小设置为负值,则字段将为低位序

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