需求是想通过scapy抓包,在传输文件的时候改TCP中的数据,对其进行加密再放回去,重新构造包。
p为sniff到的package,f_tcp为 p的TCP层。
使用 p.getlayer("Raw")和 f_tcp.fields['payload] 发现两者不一样,payload比raw多8个字节。raw为1440字节 payload为1448字节。
想问一下,这两者的区别是什么?如果想改数据是改payload还是raw?
还有一个问题是,改完数据对package中的数据进行替换之后,校验和是需要手动改吗?还是scapy会自动修改?