ESP8266基于NON_OS的sniffer模式开发

本文介绍了一种使用ESP8266模块的Sniffer模式抓取手机WiFi广播的Proberequest帧,从而收集手机MAC地址的方法。通过开启ESP8266的混杂模式并设置回调函数,可以监听并解析管理包中的Proberequest帧,获取手机的MAC地址。

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

最近调试测试了通过成功抓取周边手机wifi广播的Probe request帧来收集手机的MAC地址。在此记录下学习过程。

一开始的思路就是将ESP8266设置为AP模式,让手机连接上ESP8266,来获取手机wifi的MAC地址。调试完后可以读出连接上ESP8266的手机的WIFI MAC地址。相关的调试过程会在之后记录下来。但是这里的话,需要手机主动连接上ESP8266的动作。在查阅了相关的资料,手机之所以能搜索到周围的wifi热点,是因为热点会向周围广播Beacon帧,手机wifi收到后就知道了有它们的存在。当手机wifi打开后,手机wifi也会向周围主动广播Probe request帧。这就是主动搜索与被动搜索的结果。那能否通过抓取手机wifi广播的Probe request帧来抓取得到手机WiFi的MAC地址呢?

在esp8266_sd_api_guide文档说明中果然有Sniffer相关接口可以帮助实现。什么是sniffer模式?一般我们在讲的Sniffer程序是把NIC(网络适配卡,一般如以太网卡)置为一种叫promiscuous杂乱模式的状态,一旦网卡设置为这种模式,它就能是Sniffer程序能接受传输在网络上的每一个信息包。

1.void wifi_promiscuous_enable(uint8 promiscuous);
功能:开启混杂模式(sniffer)
    uint8 promiscuous :
        0:关闭混杂模式
        1:开启混杂模式

注意:
(1)仅支持在ESP8266单station模式下,开启混杂模式
(2)混杂模式下,ESP8266 station和 soft-AP接口均失效。
(3)若开启了混杂模式,请先调用wifi_station_disconnect确保没有连接
(4)混杂模式中请勿调用其他API,请先调用wifi_promiscuous_enable(0)退出snfiier。



2.void wifi_set_promiscuous_rx_cb(wifi_promiscuous_cb_t cb);
功能:注册混杂模式下的接收数据回调函数,每收到一包数据,都会进入注册的回调函数

3.bool w

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值