問題タブ [bpf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C ++でpcapファイルを読む
c++ (私は VS 2008 を使用しています) で pcap ファイルを読み込もうとしていますが、次のエラーが発生しています。
1) エラー C2011: 'bpf_program': 'struct' 型の再定義。
2) エラー C2011: 'bpf_insn': 'struct' 型の再定義
問題は、あるファイルに Packet32.h を含め、別のファイルに pcap.h を含めることだと思います (特定のクラスで Packet32.h 関数が必要であり、別のクラスで pcap ファイルを読み取るには pcap.h が必要です)。 . すべてのファイルにヘッダーガードがあります。
メイン クラスには、前述の両方のクラスを含めます。含める順序を切り替えると、別のエラーが発生します。私のように見える簡単なコードは次のとおりです。
class1.h:
class2.h:
main.cpp で:
誰かがこれについて私を助けることができるのだろうか. それは非常に高く評価されます。
networking - BPF フィルタを使用してパケット ペイロードをフィルタする方法は?
いくつかのパケットの分析について宿題をする必要があります。
BPF フィルタリングは宿題に適していることがわかりました。"Test it" のような特定の文字列で始まるペイロードを持つすべてのパケットをフィルタリングしたいと考えています。パケットは TCP、UDP、ICMP の組み合わせであり、ペイロードがないものもあります。
フィルターを設定するにはどうすればよいですか?
tcp - BPF フィルター TCP 接続
正しく開始され (3 方向プロトコル: syn、syn-ack、ack)、正しく終了する pcap ファイル接続からキャプチャしようとしています。
ack を含むすべてのパッケージがフィルター処理され、役に立たないため、ack だけでフィルター処理しません。だから私は使用します:SYNまたはSYN-ACKフラグを使用してフィルタリングします。これは接続を開始するためだけなので、パッケージをフィルタリングして終了パッケージも取得するにはどうすればよいですか?
実装に依存するすべての接続がどのように終了するか正確にわからないため、それは正しくないと思いますか? それともいつも同じですか?
linux - Linux マシンで SOCK_DGRAM で BPF を使用する
データグラムソケットで BPF を使用してパケットをフィルタリングすることは可能ですか?
フィルタをアタッチしようとしてもエラーは発生しませんが、パケットを受信しません。libpcap を使用してフィルターをコンパイルしました。フィルターは tcpdump で動作します。
これが私のコードの短縮版です:
私のマシンはubuntu 12.04 x86です。
linux - 生のソケットを使用して必要なトラフィックのみをリッスンする方法は?
関連する 3 つの質問:
raw ソケットには、カーネル内 BPF (libpcap によって使用される) と同等のフィルタリング方法がありますか?
raw ソケットを開くと、マシン上のすべての IP パケットを受信することになりますか?
iptables は raw ソケットとどのように相互作用しますか? raw ソケットは iptables がドロップするパケットを認識しますか?
linux - Netfilter の NFQUEUE と Berkeley Packet Filter (BPF) によるパケット フィルタリング
Linuxでパケットフィルターを開発するための2つのオプションについて、これらの回答を読みました。
1 つ目はiptablesとnetfilterを使用することで、おそらくlibnetfilter_queueライブラリNFQUEUE
と一緒に使用します。
2 つ目は、BPF (Berkeley Packet Filter) を使用することです。これは、フィルタリングの目的で同様の機能を備えているように簡単に読み取れます。
では、パケット フィルタを作成するためのより良い方法は、次のうちどれですか? 違いは何ですか?私のソフトウェアは、ゲートウェイ プロキシ、または「中間者」として実行され、あるコンピューターから (フィルターのローカル アドレスではなく、別のコンピューターへの宛先アドレスを使用して) パケットを受信し、しばらくしてから送信します。フィルタリング。
どうもありがとう!