使用pcap(lorcon2)在wifi网络上设置过滤器

使用pcap(lorcon2)在wifi网络上设置过滤器,c,pcap,C,Pcap,我正在通过wifi网络编程一个嗅探器,我遇到了一些问题 对于过滤器,我在代码中使用lorcon2pcap 实际上我有以下字符串 wlan协议\ip和ip协议\tcp wlan协议\arp和arp dst 255.255.255.255 wlan协议\arp wlan协议\ip和ip主机192.168.1.2 wlan协议\ip 使用lorcon_设置_过滤器功能进行设置时 我无法从我的应用程序中获取任何数据包。我使用lorcon_dispatch与pcap_dispatch相同 当然,我处于非阻

我正在通过wifi网络编程一个嗅探器,我遇到了一些问题 对于过滤器,我在代码中使用lorcon2pcap

实际上我有以下字符串

wlan协议\ip和ip协议\tcp

wlan协议\arp和arp dst 255.255.255.255

wlan协议\arp

wlan协议\ip和ip主机192.168.1.2

wlan协议\ip

使用lorcon_设置_过滤器功能进行设置时

我无法从我的应用程序中获取任何数据包。我使用lorcon_dispatch与pcap_dispatch相同 当然,我处于非阻塞模式,但我没有收到数据包

但是使用字符串过滤器,它可以完美地工作


谢谢

如果您的嗅探器在监控模式下捕获,并且您的Wi-Fi网络受到保护,即使用WEP或WPA/WPA2,则您捕获的数据包中802.11头之后的所有内容都将被加密,并且查看任何超过802.11头的内容(如wlan协议\ip)的过滤器将无法工作

lorcon2似乎使用或至少预期使用监控模式,因此您将无法过滤受保护网络上的流量。如果不使用监视器模式,则只能查看进出计算机的流量

此外,在受保护的网络上以监控模式捕获流量时,除非对其进行解密,否则所捕获的流量将不会有用,而且解密并不容易;您需要代码对其进行解密,并且您需要为该代码提供网络密码,对于WPA/WPA2网络,最受保护的网络,您还必须捕获每个要解密其流量的站点的EAPOL握手,这意味着您必须在嗅探时强制这些站点与网络重新关联。请记住,WEP和WPA/WPA2的全部目的是保护网络上的流量,即使网络嗅探变得更加困难

这个限制不是你的程序所独有的;它适用于所有Wi-Fi嗅探器,包括tcpdump、Wireshark和各种商用嗅探器程序。Wireshark支持解密,但代码有点复杂,启用它的过程也有点复杂;看见然而,解密是在已经捕获的流量上完成的;过滤不在802.11报头中的任何内容上的受保护流量都不起作用,因此,虽然您可以测试数据帧或特定MAC地址,但无法测试流量是否为IP或ARP或802.2报头中指示的该层的任何内容,这是有效负载的一部分,因此是加密的,无法测试特定IP地址等