2011-07-12 217 views
2

我試圖用Scapy作爲嗅探器來識別錯誤校驗和的數據包。我能夠通過訪問比較TCP校驗和Scapy?

packet[TCP].chksum 

得到原始校驗我然後使用

del packet[TCP].chksum 

刪除此,我想這樣做

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

據我所知,使用show2()重新計算校驗和,但無論如何要訪問這個屬性來比較回原來的?調用show2()只是顯示校驗和是什麼,並且不會設置數據包中的任何值。

感謝任何澄清

回答

2

使Scapy的重新計算各個領域,通過轉儲到一個字符串組合包,然後解析字符串。

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