Skip to content
This repository has been archived by the owner on Nov 19, 2022. It is now read-only.

Latest commit

 

History

History
32 lines (23 loc) · 1.47 KB

README.md

File metadata and controls

32 lines (23 loc) · 1.47 KB

ESP32 附近WiFi设备嗅探

介绍

本项目是基于ESP32的WiFi嗅探器,可以扫描附近的WiFi使用设备

技术细节

Wi-Fi的嗅探是通过ESP32提供的WiFi数据包嗅探功能实现的,具体的实现过程如下:

  1. 通过esp_wifi_set_promiscuous函数设置ESP32为嗅探模式
  2. 通过esp_wifi_set_promiscuous_rx_cb函数设置嗅探回调函数
  3. 在回调函数中解析WiFi数据包, 获取MAC地址:
    • WiFi的数据包有两种类型,一种是管理帧,一种是数据帧
    • 管理帧中的MAC地址在wifi_promiscuous_pkt_t结构体中的payload字段中
    • 根据IEEE802.11标准, 管理包的结构如下: Management Packet 其中Frame Control的结构如下: Frame Control 为了获得正确的MAC地址, 我们需要关心From DS和To DS这两个字段, 其含义如下: From DS and To DS
    • 从结构体中读取需要的数据
  4. 将MAC地址转换为字符串,通过屏幕打印出来

展示

image