Ich denke derzeit über eine Möglichkeit nach, an derselben Schnittstelle nur mit pcap zu schnüffeln und die Pakete auch mit pcap_inject zu injizieren.
Das Problem lässt sich mit beiden Methoden leicht lösen:
- dauerhafte Prüfsummenverfolgung /große langsame Karte/,
- Prüfsummenverfolgung - bis alle Daten eingespeist wurden, z. B. eine erste http-Anfrage;
- bpf/libipq/Netfilter hacken, um zusätzliche Parameter für jedes echte PHY-Paket zu übertragen
Aber:
pcap lauscht eth0 /Die reale Situation ist näher an "pcap lauscht und verwirft über die magische Quelle"/, pcap sendet Pakete über das Handle von eth0, damit sie nach draußen geleitet werden können. Was ist die theoretische Grundlage dafür, dass libpcap keine Pakete aufnimmt, die mit derselben Bibliothek an dieselbe Schnittstelle eingespeist wurden - z.B. gehen eingespeiste Pakete nicht durch den gesamten Paketfiltercode von Berkeley?
Praktische Prüfung TBD.