print(f"sending pcap packets to {self.dst_ip}:{self.dst_port}")
packs = scp.rdpcap(self.pcap)
new_src_mac = get_mac_address(ip="0.0.0.0")
new_dst_mac = self.dstmac
for pkt in packs:
pkt[scp.Ether].src = new_src_mac
pkt[scp.Ether].dst = new_dst_mac
pkt[scp.IP].src= self.src_ip
pkt[scp.IP].dst= self.dst_ip
pkt[scp.TCP].sport = self.src_port
pkt[scp.TCP].dport = self.dst_port
pkt[scp.TCP].ack = ack_num
pkt[scp.TCP].seq = seq_num
scp.sendp(pkt, iface=self.iface)
如上面的代码所示,我正在读取 pcap 数据包并将其发送到服务器。
这是因为我没有使用默认端口,wireshark上的自动解码适用于默认端口(MMS:102),所以我需要在默认端口上发送pcap数据包或使用wireshark的“解码为”功能手动解码。