Aperturesurvivor/openwyzeband
GitHub: Aperturesurvivor/openwyzeband
一个实验性的开源工具包,通过系统化采集和分析 BLE 通信数据来逆向工程 Wyze Band 智能手环的私有协议。
Stars: 0 | Forks: 0
# openwyzeband
一个用于 Wyze Band 的实验性开源逆向工程工具包。
该项目目前处于暂停状态,因为测试手环无法与其手机可靠配对。其预期目标仍然是提供一条完全开放的路径,用于直接控制显示屏并接收实时传感器数据。项目记录和计划的方法记录在
。
首要目标不是猜测协议。而是收集干净的 BLE 证据:
- 查找 Wyze Band 广播
- 枚举服务和特征
- 订阅通知
- 记录读取、写入和通知 payload
- 重放受控实验,以便安全地记录协议
仅对您拥有或获得明确测试许可的设备使用此工具。
## 安装说明
```
cd openwyzeband
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
在 macOS 上,请为您使用的终端应用授予 Bluetooth 权限。
## 运行 openwyzeband
扫描附近的 BLE 设备:
```
openwyzeband scan
```
导出匹配设备的 GATT 服务:
```
openwyzeband dump --name Wyze
```
记录所有可读值和通知:
```
openwyzeband observe --name Wyze --duration 120 --out captures/observe.jsonl
```
在 `observe` 期间,使用 Wyze app 或手环 UI 每次触发一个操作:
- 在 Wyze app 中打开 Wyze Band 屏幕
- 同步健康数据
- 开始或停止心率测量
- 使用“查找手环”
- 更改设置
- 接收通知
每个操作都应在各自独立的简短捕获中重复进行。这使得构建协议映射变得容易得多。
## 项目结构
- `src/openwyzeband/cli.py`:命令行入口
- `src/openwyzeband/ble.py`:BLE 扫描/连接/读取/通知辅助工具
- `docs/recon-plan.md`:分阶段逆向工程计划
- `docs/android-hci-capture.md`:官方 app 捕获工作流
- `docs/ios-bluetooth-capture.md`:iPhone 捕获工作流
- `docs/protocol-notes.md`:协议工作笔记
- `scripts/wireshark_att_csv_to_jsonl.py`:将 Wireshark ATT CSV 导出文件转换为 JSONL
- `scripts/find_ios_bluetooth_logs.py`:在 iOS sysdiagnose 存档中定位 Bluetooth 日志
## 近期里程碑
1. 识别广播名称、制造商数据、服务和特征 UUID。
2. 将特征标记为读取、写入、通知、指示或控制。
3. 捕获已知用户操作产生的 app 到手环流量。
4. 解码稳定的字段,如电池、时间同步、步数、心率和振动。
5. 发布一个包含类型化命令和实时通知解析的微型库。
标签:文档结构分析, 逆向工具