3

現在、pcap のみを使用して同じインターフェイスでスニッフィングし、pcap_inject を使用してパケットを注入する可能性を考えています。

この問題は、次のいずれかを使用して簡単に解決できます。

  • 永続的なチェックサムの追跡 /大きな低速マップ/,
  • チェックサムの追跡 - すべてのデータが注入されるまで (たとえば、最初の http 要求)。
  • bpf/libipq/Netfilter をハッキングして、実際の PHY パケットごとに追加のパラメーターを運ぶ

しかし:

pcap が eth0 をリッスンする /実際の状況は「pcap がリッスンし、ソース マジック経由でドロップする」に近い/、pcap は eth0 のハンドルを介してパケットを送信し、ルーティングできるようにします。libpcap が同じライブラリを使用して同じインターフェイスに注入されたパケットをキャプチャしないための理論的根拠は何ですか?たとえば、注入されたパケットはすべての Berkeley のパケット フィルタ コードを通過しませんか?

実技試験未定。

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 に答える