下面是基于 四博智联 ESP-M2 模组(基于 ESP8285 芯片)实现 Wi-Fi 混杂模式的代码,您可以用来捕获周围的 Wi-Fi 数据包并进行分析:
使用ESP-M2的Wi-Fi探针代码:
#include <ESP8266WiFi.h>
extern "C" {
#include "user_interface.h"
}
// 回调函数,处理捕获的数据包
void wifiSnifferCallback(uint8_t *buf, uint16_t len) {
// Wi-Fi 包头信息
struct sniffer_buf *sniffer = (struct sniffer_buf*) buf;
// 打印捕获到的源 MAC 地址
Serial.printf("Source MAC: %02X:%02X:%02X:%02X:%02X:%02X\n",
sniffer->buf[10], sniffer->buf[11], sniffer->buf[12],
sniffer->buf[13], sniffer->buf[14], sniffer->buf[15]);
}
void setup() {
Serial.begin(115200);
// 初始化 Wi-Fi 进入混杂模式
wifi_set_opmode(STATION_MODE); // 设置为仅 STA 模式
wifi_promiscuous_enable(1); // 启用混杂模式
wifi_set_promiscuous_rx_cb(wifiSnifferCallback); // 设置捕获回调
}
void loop() {
// 持续运行,捕获数据包
delay(1000);
}
代码说明:
- Wi-Fi混杂模式:通过
wifi_promiscuous_enable(1)
使 ESP-M2(ESP8285)进入 Wi-Fi 混杂模式。 - 数据包捕获:
wifiSnifferCallback
回调函数负责处理捕获到的数据包,并提取源 MAC 地址。 - 分析:通过查看捕获的 Wi-Fi 信号源,可以检测是否存在可疑设备,如隐藏的 Wi-Fi 摄像头。
如何工作:
- ESP-M2 将捕获附近的 Wi-Fi 数据包并提取源 MAC 地址进行分析。
- 你可以根据设备 MAC 地址和网络类型来判断是否存在潜在的监控设备