我想分析网络流量,但不是通过连接它来分析 打开wifi并嗅探数据包(IEEE 802.11帧) 在混杂模式
我试过libpcap,但它可能在内部更改datalinktype,因为我在
中提供wifi接口descr=pcap_open_live("en1", MAXBYTES2CAPTURE, 1, 512, errbuf);
(因为我们知道mac OS x将en1作为wifi接口)
现在当我这样做时
printf("%s", pcap_datalink_val_to_name( pcap_datalink(descr)));
它给我结果"ethernet"
我试图使用wireshark捕获数据包而不连接到我的wifi网络,它工作!
我能够捕获Beacon , Acknowledgement and Authentication frames
而无需连接到我的wifi网络。
现在:
我正在使用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);
是的,wifi上有一个小监视器图标,我可以嗅探 数据包,但只有当我连接到网络时,我想做同样的事情 当我没有连接到wifi就像捕获Beacon和 确认帧表示我们的网卡通过其检测可用的无线网络的数据包
答案 0 :(得分:2)
如果您在Snow Leopard或更高版本(您正在运行Lion)上运行,则应使用新的pcap_create()
/ pcap_activate()
API,并启用监控模式在pcap_set_rfmon()
和pcap_create()
来电之间拨打pcap_activate()
。
这是Wireshark 1.6.0及更高版本在检查监控模式复选框时所做的事情,以及如果指定{{1},tcpdump 1.0.0及更高版本以及Wireshark 1.6.0及更高版本中的TShark和dumpcap会执行的操作命令行标志。
默认情况下,许多操作系统上的Wi-Fi接口(包括但不限于OS X)提供以太网报头,而不是802.11报头,这就是-I
报告以太网报头的原因。在Linux和OS X上,您必须进入监控模式才能获得802.11标头;在* BSD上,您无需进入监控模式即可获得802.11标头。
在OS X上,您不需要自己的驱动程序进入监控模式; Wireshark不提供自己的驱动程序。