ネットワーク トラフィックを分析したいが、接続することはできない Wi-Fi をオンにして、無差別モードでパケット (IEEE 802.11 フレーム) を盗聴するだけ
私はlibpcapを試しましたが、wifiインターフェースを提供しているため、データリンクタイプを内部的に変更している可能性があります
descr=pcap_open_live("en1", MAXBYTES2CAPTURE, 1, 512, errbuf);
(私たちが知っているように、Mac OS xにはwifiインターフェースとしてen1があります)
今私がこれをするとき
printf("%s", pcap_datalink_val_to_name( pcap_datalink(descr)));
"ethernet"
wifiネットワークに接続せずにwiresharkを使用してパケットをキャプチャしようとした結果が得られ、うまくいきました!! Beacon , Acknowledgement and Authentication frames
Wi-Fi ネットワークに接続せず にキャプチャできました。
今:
- そのためのネットワークカードドライバーを作成する必要がありますか、またはlibpcapでそれを行うことができますか?もしそうなら、どのように?
- Wireshark はそのための何らかのドライバーを作成していますか? はいの場合は、ソースコードでそれを見つけるのを手伝ってください。
- Apple の CFNetwork を試してみましたが、これもネットワークに接続しないとキャプチャできません。
- カーネルレベルのコーディングは少し難しいので、いくつかのユーザースペースコードについて提案があれば非常に役に立ちます:(
xCode 4.5.1でMacOS 10.7でコーディングしています
更新:
私はすでにこれを行っています:
descr=pcap_create("e1", errbuf);
pcap_set_rfmon(descr, 0);
pcap_set_promisc(descr, 0);
pcap_activate(descr);
descr=pcap_open_live("en1", 2048, 1, 512, errbuf);
はい、Wi-Fi には小さなモニター アイコンがあり、パケットをスニッフィングできますが、ネットワークに接続している場合のみ、Wi-Fi に接続していないときにビーコンや確認フレームをキャプチャするなど、同じことを行いたいと考えています。ネットワーク カードが利用可能な Wi-Fi ネットワークを検出します