原文:http://www.zhihu.com/question/33559283
如何用mt7620方案的rt2860v2驱动实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊?
如何用mt7620方案的rt2860v2驱动,实现wifi探针功能,网上能搜到一些方法,但是讲的好模糊,真心看不懂,求懂的或者做过的大侠细讲一下,贴出源码,或者邮件我devinsh@163.com,万分感谢!
添加评论
分享
3赞同反对,不会显示你的姓名
wifi探针,要获取station发送的probe request帧和信号强度么?如果是的话:
完成这个要考虑两件事情,一是如何获取到,二是如何传递给处理程序
完成这个要考虑两件事情,一是如何获取到,二是如何传递给处理程序
1.获取
rt2860v2的源码你有的,找到对应的处理probe request帧的函数APPeerProbeReqAction,再里面取对应的变量就可以了
+ PFRAME_802_11 pFramelxd = (PFRAME_802_11)Elem->Msg;
+ //printk(KERN_INFO "mac is %pM, signal is %d\n", pFramelxd->Hdr.Addr2, Elem->Signal);
但是要注意一点,如果这样取Signal,值是0。因为这版驱动强制给Signal赋值为0,这个需要你看下代码改下。如果你不需要获取信号强度,那就不用管了。
2.传递
数据传递给用户空间的应用程序,可以通过netlink或者/proc,具体自己google搞定就可以了
王祥凯(作者) 回复 yang shaokun
iOS貌似从8开始就对probe request 帧的源mac地址使用随机mac地址了(反正不用真的),但是部分情况下还是会发送真实的mac地址。
升级到9后,mac随机化更严格了,貌似任何情况下发出的probe request 帧都使用随机mac地址。
因此就无法获取到真实的mac地址了:<
升级到9后,mac随机化更严格了,貌似任何情况下发出的probe request 帧都使用随机mac地址。
因此就无法获取到真实的mac地址了:<
2015-11-23