3

Scapy をスニファーとして使用しているときに、チェックサムが正しくないパケットを識別しようとしています。アクセスして元のチェックサムを取得できます

packet[TCP].chksum  

次に、これを使用して削除します

del packet[TCP].chksum 

私は次のようなことをしたいと思います

if(originalChecksum == recomputedChecksum):
     # Checksum is valid

show2() を使用するとチェックサムが再計算されることは理解していますが、元の属性と比較するためにこの属性にアクセスする方法はありますか? show2() を呼び出すと、チェックサムがどうなるかが表示されるだけで、パケット内の値は設定されません。

明確にしていただきありがとうございます

4

1 に答える 1

2

Scapy にすべてのフィールドを再計算させるには、パケットを文字列にダンプして組み立て、文字列を解析します。

originalChecksum=packet['TCP'].chksum
del packet['TCP'].chksum
packet=IP(str(packet))
recomputedChecksum=packet['TCP'].chksum
于 2011-07-12T16:01:43.897 に答える