Chinaunix

标题: 请问无线网卡monitor模式收不到其他信道的数据包,请问是硬件过滤还是软件过滤的? [打印本页]

作者: w_anthony    时间: 2015-03-10 17:10
标题: 请问无线网卡monitor模式收不到其他信道的数据包,请问是硬件过滤还是软件过滤的?
windows上安装"commview for wifi"貌似可以截到全部信道的包(测试截取信道3、6、9的包),感觉似乎是属于软件过滤的。
查看了下openwrt的源码(对linux内核源码没啥经验),研究了半天,发现似乎是在ieee80211_add_rx_radiotap_header里面put_unaligned_le16(status->freq, pos)把信道(status->freq)写入了skb_buff的某个地方,然后最后再扔给netif_receive_skb函数。而在其之前似乎没有找到使用freq进行计算过滤的地方(代码量太大),但是netif_receive_skb貌似是驱动传递给内核的地方,如果驱动里面没有过滤,难道是内核里面再过滤么?内核里面的netif_receive_skb暂时还没有研究下去,但是方向错了,也就没有研究的必要了。
请问这个信道不同的数据包无法截取,到底是硬件上就无法接收,还是什么地方进行软件过滤了呢?

作者: neodreamerus    时间: 2015-03-15 01:05
我认为是硬件过滤的,在基带处理之前就给过滤掉了。

那个可以接收到多个信道的包的原因我觉得是硬件的接收信道在切换,具体工作机制我不清楚。

你有没有试试在windows上将wifi网卡连接到一个AP,然后再创建一个monitor模式的VAP,再抓包试试,此时应该就不能够抓到所有信道的包了,只能抓到那个AP工作信道的包。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2