上下文
我正在编写一个程序,该程序使用pcap在带有ar9331芯片的openwrt路由器上以监控模式捕获数据包。 我在pcap 1.1(存在于我的openwrt版本)的桌面上测试了该程序并发现了一个问题:pcap_can_set_rfmon返回true,pcap_set_rfmon返回成功,但尝试激活捕获导致“监视模式不支持”错误。
Google搜索显示了与wireshark类似问题的错误报告。其中一条评论说,对于一些wi-fi设备,问题是由旧版本的pcap引起的,它使用旧版本的另一个lib。 我将pcap版本更新为1.5.3,问题已解决。
问题: 当我将程序移植到Openwrt时,问题再次出现。但是现在从更新的openwrt分支更新libpcap包到版本1.5.3并没有帮助。
答案 0 :(得分:1)
遗憾的是,当libpcap与libnl链接时,Linux上的libpcap监控模式代码效果最好,并且由于各种原因(包括使用libpcap和libnl的程序出现问题,并且与不同版本的链接有关),它通常不与libnl链接libnl比链接libpcap的那个。)
这需要在libpcap中重做。最终可能会完成libpcap运行以执行各种操作的“辅助进程”;如果使用libpcap的程序异常退出并允许将需要特殊权限的数据包捕获操作限制在辅助进程而不是要求程序使用libpcap以这些权限运行,那么这也会改进清理。这是我很长的待办事项清单。
最佳解决方法可能是使用airmon-ng打开监控模式,如the Wireshark Wiki page on Wi-Fi capturing中所述。