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桥, 信标, 协议分析, 协议逆向, 反向工程, 固件, 数字取证, 无后门, 智能徽章, 权限提升, 消费电子, 物联网, 系统分析, 网络分析, 自动化脚本, 蓝牙低功耗, 蓝牙桥接, 设备控制, 逆向工具