Python 如何在scapy中设置下层的有效负载长度
如何将下层的有效负载长度字段设置为上层的大小Python 如何在scapy中设置下层的有效负载长度,python,scapy,Python,Scapy,如何将下层的有效负载长度字段设置为上层的大小 import binascii from scapy.all import * payload_types = {0: "Upper0", 1: "Upper1"}; class Lower(Packet): fields_desc = [ XShortEnumField("payload_type", 0, payload_types), IntField("payload_leng
import binascii
from scapy.all import *
payload_types = {0: "Upper0", 1: "Upper1"};
class Lower(Packet):
fields_desc = [
XShortEnumField("payload_type", 0, payload_types),
IntField("payload_length", 0) ];
class Upper0(Packet):
fields_desc = [
IntField("data", 0)
]
bind_layers(Lower, Upper0, payload_type=0)
class Upper1(Packet):
fields_desc = [
IntField("data0", 0),
IntField("data1", 0)
]
bind_layers(Lower, Upper1, payload_type=1)
p0=Lower()/Upper0(data=1)
p1=Lower()/Upper1(data0=1,data1=2)
print(binascii.b2a_hex(bytes(p0))) # 00000000000000000001
print(binascii.b2a_hex(bytes(p1))) # 0001000000000000000100000002
此处bind_layers
重载较低层的payload_type
,但是如何连接点以同时设置payload_长度
?p0.payload_长度应为4,而p1.payload_长度应为8。
我可以看一下实现这一点的层示例吗