繁体   English   中英

在 Scapy 中更改数据包字节序

[英]Change packet endianness in Scapy

我在 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。

关于如何实现这一点的任何建议?

谢谢

如果将大小设置为负值,则字段将采用低端顺序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM