
ESP8266 Deauther隐藏的1.5MB OUI数据库MAC地址厂商识别原理与更新方法【免费下载链接】esp8266_deautherAffordable WiFi hacking platform for testing and learning项目地址: https://gitcode.com/gh_mirrors/es/esp8266_deautherESP8266 Deauther是一款基于廉价 ESP8266 开发板的 WiFi 安全测试与学习平台它内置了一个鲜为人知的1.5MB OUI 数据库——扫描到的每个设备旁都能直接显示厂商名称如 Apple、TP-Link背后的功臣就是这个藏在大文件 oui.h 里的 MAC 地址厂商识别引擎。本文将带你搞懂它的识别原理、数据结构和更新方法。一、藏在代码深处的 1.5MB 数据库打开主工程目录你会发现一个异常巨大的头文件文件位置esp8266_deauther/oui.h文件大小约1.5MB1,504,250 字节接近 4 万行数据来源基于 Wireshark 开源项目的厂商manuf数据库转换而来普通 ESP8266 项目的头文件通常只有几 KB而这个文件足足有1.5MB——因为它把全球几万个厂商的 MAC 地址段全部打包进了固件。ESP8266 的 Flash 空间足够装下它这也是 Deauther 能做到开箱即识别厂商的关键。二、MAC地址厂商识别原理3字节OUI 二分查找什么是 OUIMAC 地址共 6 字节前 3 字节由 IEEE 统一分配给厂商称为 OUIOrganizational Unique Identifier。例如某 MAC 前 3 字节固定即可锁定生产厂商。OUI 数据库本质上就是前 3 字节 → 厂商名的查表映射。两张紧凑的查找表数据库被压缩为两张紧凑的字节数组见 oui.h数组每条记录大小内容data_macs[]5 字节OUI 前 3 字节 厂商索引2 字节data_vendors[]8 字节厂商名ASCII不足补 0这种索引间接引用设计避免了为每个 MAC 段重复存储厂商名大幅节省空间。核心识别逻辑识别入口是 searchVendor() 函数流程非常经典取 MAC 地址前 3 字节作为 OUI 键在按 OUI 排序的data_macs[]中执行二分查找binSearchVendors()数万条记录通常只需几次比较找到条目后读取厂商索引再定位到data_vendors[]取出 8 字节厂商名查不到则返回空字符串。 小知识同一份数据库还被用来生成随机 MAC——getRandomMac() 随机挑一条真实 OUI再随机填充后 3 字节即可伪装出任意厂商的 MAC 地址。三、厂商识别结果在哪里生效识别能力贯穿 Deauther 的三大交互界面网页界面扫描结果 JSON 中直接携带vendor字段见 Scan.cppOLED 屏幕详情页显示设备厂商见 DisplayUI.cpp串口 CLIinfo命令输出中同样附带厂商列。三个列表热点 Accesspoints、在线设备 Stations、设备名称 Names都通过统一的getVendorStr()调用同一套查找逻辑保证结果一致。四、OUI数据库更新方法附完整步骤厂商数据库会随时间推移新增条目比如新入场的芯片厂商官方提供了自动更新脚本工具位置utils/vendor_list_updater/update_manuf.py更新原理脚本从 Wireshark 项目拉取最新的 manuf 文件解析出全部 OUI 条目统计厂商出现频次再重新生成 C 数组格式的oui.h。手动更新三步走获取源码git clone https://gitcode.com/gh_mirrors/es/esp8266_deauther cd esp8266_deauther/utils/vendor_list_updater运行生成脚本输出到项目根目录python3 update_manuf.py -o ../../esp8266_deauther/oui.h重新编译固件并烧录即完成数据库更新。精简模式加-s参数可只保留最常用厂商README 中建议前 1000 家文件可压缩到512KB 以内对绝大多数日常设备已足够详见 utils/vendor_list_updater/README.md。五、省内存技巧想瘦身就关一个宏1.5MB 数据库全部存放在 FlashPROGMEM中不占 RAM但会占据不少编译空间。如果用的是小 Flash 开发板有两种瘦身方案注释掉总开关oui.h 中的#define ENABLE_MAC_LIST注释后两个大数组将被完全剔除代价是界面不再显示厂商使用精简版列表按上一节-s模式重新生成兼顾识别率与体积。总结ESP8266 Deauther 的 OUI 数据库是小设备大功能的典范✅1.5MB的 oui.h 让扫描结果自带厂商标签✅3 字节 OUI 二分查找识别快且省内存✅一行 Python 命令即可同步 Wireshark 最新厂商数据✅ 提供ENABLE_MAC_LIST开关与精简模式灵活控制体积。掌握这套原理后你不仅能看懂 Deauther 的厂商识别机制也能把它移植到自己的 WiFi 安全测试工具中。⚠️ 请仅在自己的授权网络环境中进行安全测试学习。【免费下载链接】esp8266_deautherAffordable WiFi hacking platform for testing and learning项目地址: https://gitcode.com/gh_mirrors/es/esp8266_deauther创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考