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

时间:2014-11-16 14:12:22

标签: c pcap

我通过wifi网络编程嗅探器,我遇到了一些问题 使用过滤器我在我的代码中使用lorcon2(pcap)

其实我有以下字符串

" wlan proto \ ip和ip proto \ tcp"

" wlan proto \ arp和arp dst 255.255.255.255"

" wlan proto \ arp"

" wlan proto \ ip和ip host 192.168.1.2"

" wlan proto \ ip"

使用lorcon_set_filter()函数设置

我无法从我的应用程序获取任何数据包(我使用lorcon_dispatch与pcap_dispatch相同) 我肯定会选择“非阻塞”#34;模式,但我得不到数据包

但使用""字符串过滤器完美运行

由于

1 个答案:

答案 0 :(得分:0)

如果您的嗅探器正在监控模式下捕获,并且您的Wi-Fi网络处于“受保护”状态,即使用WEP或WPA / WPA2,您捕获的数据包中802.11标头后面的所有内容都将被加密,过滤器会看到任何超过802.11标头的内容 - 例如wlan proto \ip - 将无效。

似乎lorcon2使用或至少需要监控模式,因此您将无法过滤受保护网络上的流量。 (如果您使用监控模式,您将只能看到进出机器的流量。)

此外,当在受保护的网络上以监控模式捕获时,除非您对其进行解密,否则您捕获的流量将无用,并且解密它并不容易;您需要使用代码对其进行解密,并且您需要为该代码提供网络密码,对于WPA / WPA2网络,大多数受保护的网络都是如此,您还必须为每个网络捕获EAPOL握手您要解密的流量的电台,这意味着您在嗅探时必须强制这些电台与网络重新关联。 (请记住,WEP和WPA / WPA2的重点是保护网络上的流量,即使嗅探网络更加困难!)

此限制并非您的程序所独有;它适用于所有 Wi-Fi嗅探器,包括tcpdump,Wireshark和各种商业嗅探器程序。 Wireshark支持解密,但代码有点复杂,启用它的过程也是如此;见the Wireshark Wiki article on it。但是,该解密是在已经捕获的流量上完成的;过滤不在802.11标头中的任何内容的“受保护”流量不起作用,因此,当您可以测试数据帧或特定MAC地址时,您无法测试流量是IP还是ARP或该层的任何内容(因为它在802.2标头中指示,它是有效载荷的一部分并因此被加密),不能测试特定的IP地址等。