kpkpkp/ble-explorer

GitHub: kpkpkp/ble-explorer

一个基于 ESP32-S3 的 WiFi 到 BLE 桥接工具包,解决消费级 BLE 设备协议黑盒难以分析的问题。

Stars: 0 | Forks: 0

# ble-explorer 一个用于反向工程消费级 BLE(蓝牙低功耗)协议的工具包,适用于智能徽章、电子姓名牌及其他类似设备。 ## 概述 ble-explorer 最初是一个项目,旨在以编程方式理解并控制消费级 BLE 显示设备。无需依赖功能有限的厂商应用,该工具包通过 ESP32-S3 WiFi 转 BLE 桥接架构提供完整的协议分析与控制能力。 ## 架构 ``` ┌──────────────┐ WiFi/HTTP ┌──────────────────┐ BLE GATT ┌─────────────────┐ │ Android App │ ◄──────────────► │ ESP32-S3 │ ◄──────────────► │ Display Device │ │ (Kotlin) │ │ Bridge Firmware │ │ (target) │ ├──────────────┤ ├──────────────────┤ └─────────────────┘ │ Python │ │ NimBLE stack │ │ Scripts │ │ HTTP server │ └──────────────┘ │ OTA support │ └──────────────────┘ ``` ESP32-S3 作为桥接器:它连接 BLE 显示设备并通过 WiFi/HTTP 暴露控制接口,从而实现在网络中的任何设备上进行程序化交互与协议分析。 ## 组件 | 目录 | 说明 | |------|------| | `firmware/` | ESP32-S3 桥接固件(C/C++、ESP-IDF、NimBLE) | | `android/` | Android 配套应用(Kotlin) | | `scripts/` | Python 分析与自动化脚本 | | `docs/` | 协议文档与发现 | | `specs/` | 架构规范与功能计划 | ## 关键特性 - **WiFi 到 BLE 桥接** — 通过 HTTP 从任意网络客户端控制 BLE 设备 - **电源管理** — 切换设备电源,并在断电后保留显示模式 - **OTA 固件更新** — 通过 WiFi 刷新桥接器固件 - **预设系统** — 保存并调用显示配置(例如命名预设) - **计划操作** — 定时恢复与模式循环 - **Web 仪表盘** — 基于浏览器的控制界面 ## 技术栈 - **Kotlin** — Android 配套应用 - **Python** — 协议分析、自动化脚本 - **C/C++** — ESP32-S3 固件 - **ESP-IDF** — Espressif IoT 开发框架 - **NimBLE** — ESP32 的 BLE 协议栈 - **BLE GATT** — 设备通信的通用属性配置文件 ## 属于 WitnessMark 该项目是更广泛的 [WitnessMark](https://github.com/kpkpkp) 生态系统的一部分——一个用于加密验证位置与时间证明的多平台 IoT 系统。此处开发的 BLE 协议知识直接应用于 WitnessMark 反射器固件。
标签:Android, BLE, DSL, ESP32-S3, ESP-IDF, GATT, HID, IoT, Kotlin, LED名签, NimBLE, OTA, Python, UML, Waymore结果处理, WiFi, WiFi桥, 信标, 协议分析, 协议逆向, 反向工程, 固件, 数字取证, 无后门, 智能徽章, 权限提升, 消费电子, 物联网, 系统分析, 网络分析, 自动化脚本, 蓝牙低功耗, 蓝牙桥接, 设备控制, 逆向工具