3

目前正在考虑仅使用 pcap 嗅探同一接口并使用 pcap_inject 注入数据包的可能性。

可以使用以下任一方法轻松解决此问题:

  • 持久校验和跟踪/大慢图/,
  • 校验和跟踪 - 直到注入所有数据,例如第一个 http 请求;
  • hacking bpf/libipq/Netfilter 为每个真实的 PHY 数据包携带附加参数

但:

pcap 侦听 eth0 /realworld 情况更接近“pcap 通过源魔法侦听和丢弃”/,pcap 通过 eth0 的句柄发送数据包,因此它们可以被路由出去。libpcap 不捕获使用相同库注入到相同接口的数据包的理论基础是什么 - 例如,注入的数据包没有通过所有伯克利的数据包过滤器代码?

实际测试待定。

4

2 回答 2

1

可能只是忽略skb->pkt_type == PACKET_OUTGOING接收路径中具有属性的数据包。

于 2010-12-22T23:02:05.600 回答
1

您的问题很难解析,但如果我理解正确,您正在寻找一种方法来捕获不包括您注入的数据包的数据包。您可以使用捕获过滤器来执行此操作,该过滤器仅查看发送到您机器上相关接口的内容...

ether dst aa:bb:cc:dd:ee:ff 

...或者捕获除在相关接口上发送的所有内容之外的所有内容:

not ether src aa:bb:cc:dd:ee:ff

这将影响来自您机器的流量,而不是您注入的流量,但如果您捕获并注入,那么您可能无论如何都不关心您自己机器的数据包。如果您需要更自定义的内容,在捕获的数据包中识别您刚刚发送的数据包应该不难。(我想这就是校验和的意思,但我没有看到直接的表问题。)

于 2010-12-22T23:03:23.793 回答