私は独自のプロトコルをコーディングしており、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
私が実行している 2 つの呼び出しに対して?