Сравнивая контрольные суммы TCP со Scapy? - PullRequest
2 голосов
/ 12 июля 2011

Я пытаюсь идентифицировать пакеты с неправильными контрольными суммами при использовании Scapy в качестве анализатора. Я могу получить исходную контрольную сумму, набрав

packet[TCP].chksum  

Затем я удаляю это, используя

del packet[TCP].chksum 

Я хотел бы сделать что-то вроде

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

Я понимаю, что использование show2 () пересчитывает контрольную сумму, но есть ли способ получить доступ к этому атрибуту для сравнения с оригиналом? Вызов show2 () просто отображает, какой будет контрольная сумма, и не устанавливает никаких значений в пакете.

Спасибо за любые разъяснения

1 Ответ

2 голосов
/ 12 июля 2011

чтобы заставить Scapy пересчитать все поля, собрать пакет, выгрузив его в строку, а затем проанализировать строку.

originalChecksum=packet['TCP'].chksum
del packet['TCP'].chksum
packet=IP(str(packet))
recomputedChecksum=packet['TCP'].chksum
...