Scapy Tcp Checksum Recalculation Odd Behaviour
I'm trying to do a TCP ACK Spoofing. I sniff one ACK packet from a pcap file and send it in a loop incrementing its ACK number as well as another option field. Sniffing Part: (Pres
Solution 1:
After a extended testing, I saw that, del ack_pkt[TCP].checksum
deletes the checksum. But while converting to hex string with str(ack_pkt)
, I guess, it recalculates the checksum. After trying:
ack_pkt = sniff(offline="mptcpdemo.pcap", filter="tcp", count=15)[14]
del ack_pkt[TCP].chksum
print ack_pkt[TCP].chksum
printstr(ack_pkt)
It 1st prints the checksum as None
. But while printing the hex string, I'm able to see that the checksum field is non zero and contains the actual recalculated checksum.
In the non-optimized code, inside the loop, the packet is converted to hex-string and hence it's re-calculating the checksum each time. But in the optimized version, conversion is outside the loop and hence it carries one value only.
Post a Comment for "Scapy Tcp Checksum Recalculation Odd Behaviour"