# bluefluff：逆向分析 Furby Connect 的蓝牙低功耗协议

> 记录 Hasbro 玩具 Furby Connect 的蓝牙低功耗（BLE）接口；据其说明，这些内容来自对配套应用原生库的分析、BLE 流量嗅探和反复试验。文档梳理了 GATT 服务，以及玩具中 Nordic 无线芯片和 GeneralPlus 控制器的命令与响应字节，涵盖动作序列、天线颜色、情绪数值、传感器报告和一个隐藏的调试界面。fluffd 是基于 noble BLE 库的 Node.js 守护进程，通过 HTTP API 和浏览器控制页面提供这些命令。

- 类型：案例
- 目标：协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-31
- 原始资源：<https://github.com/Jeija/bluefluff>
- 一手来源：<https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/bluefluff-furby-connect-ble-case/>
- 记录 JSON：<https://awesomerea.org/resources/bluefluff-furby-connect-ble-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/bluefluff-furby-connect-ble-case/index.md)

## 使用条件与局限

- 大部分研究提交集中在 2017 和 2018 年，此后只有少量修复，并于 2026 年 3 月加入了 Docker 配置。README 报告已弄清 BLE 协议的大部分内容，但动作列表尚不完整，更新包（DLC）格式只做了部分探索，代码执行、自定义 LCD 动画和睡眠面罩接口均未尝试。
- 需要一台 Furby Connect，以及内置蓝牙低功耗或配有 USB 蓝牙 4.0+ 适配器的主机。仓库不含 Hasbro 的更新文件或应用代码。README 警告，以不当方式操作可能使玩具变砖，而且几乎必然导致失去保修。
- README 指出 fluffd 需要 Node.js 7.0 或更高版本，并固定使用 @abandonware/noble 1.9.2-23。README 说明了 Linux（需要 libudev 开发文件和运行中的 BlueZ）和 macOS（需要 xpc-connection）的安装方法，也提到 FreeBSD 和 Windows。Docker 镜像基于 node:16-bullseye，需要使用主机网络以访问原始 HCI，仅支持 Linux 主机。
- 这些发现是作者在未拆开玩具的情况下所记录的观察结果。仓库没有测试或 CI。
- 采用 MIT 许可（2017 年，Florian Euchner）；README 的免责声明称这些信息仅供教育用途。Furby Connect、其配套应用以及 Hasbro 的内容各自保留其权利。

## 一手来源

1. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/README.md>
2. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/bluetooth.md>
3. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/generalplus.md>
4. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/nordic.md>
5. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/actions.md>
6. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/fluffd/fluffd.js>
7. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/fluffd/package.json>
8. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/Dockerfile>
9. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/doc/docker.md>
10. <https://github.com/Jeija/bluefluff/blob/9e865c47326167c2d4e6f47d96321e8e5cfc0e32/LICENSE.md>

## 同分区更多条目：协议

- [pyatv：逆向工程实现的 Apple TV 与 AirPlay 协议客户端](https://awesomerea.org/zh/resources/pyatv-apple-tv-airplay-protocols-case/index.md) · 案例
- [BudsPro-Headtracking：通过 Samsung 串口协议获取 Galaxy Buds Pro 头部追踪数据](https://awesomerea.org/zh/resources/budspro-headtracking-case/index.md) · 案例
- [Even G2 协议：逆向分析 Even Realities G2 智能眼镜的 BLE 通信](https://awesomerea.org/zh/resources/even-g2-ble-protocol-case/index.md) · 案例
- [fuji-cam-wifi-tool：重建 Fujifilm X 系列相机 Wi-Fi 遥控协议](https://awesomerea.org/zh/resources/fuji-cam-wifi-tool-protocol-case/index.md) · 案例
- [Gymnasticon：将专有健身单车数据转为标准骑行传感器信号](https://awesomerea.org/zh/resources/gymnasticon-exercise-bike-bridge-case/index.md) · 案例
- [garmin-ble：Garmin 手表 GFDI 协议的 Python 客户端](https://awesomerea.org/zh/resources/garmin-ble-gfdi-protocol-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
