如何更改PCap.Net数据包数据?

时间:2017-12-05 21:07:58

标签: c# pcap.net

我有一个(生产)WireShark捕获文件,我需要通过我的(调试)网络“重放”。我可以读取和解释数据包,但是我需要在发送数据包之前调整一些细节,比如源IP地址和端口。

然而,问题是PcapDotNet.Packets.Packet中的所有数据都是只读的。它只有两个人。 因此,例如设置以太网.IpV4.Source将不起作用。

IpV4Address.TryParse("192.168.1.10", out var newAddress); // for demo sake.
packet.Ethernet.IpV4.Source = newAddress; // Won't work

是否有一种简单的方法可以避免从头开始构建新数据包,或者这是创建稍微不同数据包的唯一方法吗?

1 个答案:

答案 0 :(得分:0)

您应该根据旧数据库创建一个新数据包,而不是更改数据包。

您可以在要保留旧图片包的每个图层上使用Year Location AVGCover 2010 1 0.1 2010 1 0.5 2010 1 1 2010 2 0.75 2010 2 0.8 2010 2 1.6 2010 3 1.1 2010 3 0.5 2010 3 0.6 2011 1 0.2 2011 1 0.2 2011 1 0.3 2011 2 0.5 2011 2 0.7 2011 2 0.4 2011 3 0.6 2011 3 0.1 2011 3 0 ,然后根据需要更改图层属性。

在这种情况下,你可以这样做:

anova(mod1 <- lm(df$AVGCover ~ df$Location + df$Year + df$Location * 
      df$Year)

pairwise.t.test(df$AVGCover, df$Year, p.adj = "none")
pairwise.t.test(df$AVGCover, df$Location, p.adj = "none")

您可能还想重置IPv4校验和,因此您应该:

ExtractLayer()

您可能需要在IPv4层之上使用类似于UDP或TCP层的内容,以防您拥有它们。