我一直在编写自己的协议,Scapy
并且在计算长度字段时遇到了问题(请参阅此处)。我在位域定义的长度层中遇到的另一个问题是,如果我调用返回未定义层中的长度字段,它将返回一个值。如果我调用hasattr(pckt[layer], 'field')
,它将返回“true”,表示属性/字段存在。这对我来说没有任何意义,因为图层定义如下所示:
class Layer(Packet):
name = "Layer"
fields_desc = [ BitField("Padding", 15, 4),
BitField("Digit", 0, 4) ]
如您所见,定义的唯一属性/字段是Padding
和Digit
。 Length
没有定义,那么为什么Scapy
返回一个整数和true
我正在执行的两个调用?