# whatsapp-web-reveng：记录旧版 WhatsApp Web 协议

> 记录并重新实现 WhatsApp Web 在浏览器会话镜像已配对手机时期使用的 WebSocket 协议：二维码配对、Curve25519/HKDF 密钥建立、经 AES/HMAC 保护的二进制报文、基于字符串令牌表的节点编码，以及端到端媒体加密。Python 后端、Node.js 中继和浏览器前端把已登录会话的报文解码成可查看的 JSON，README 还列出了 Baileys、go-whatsapp 等独立再实现。这是 WhatsApp 2021 年多设备架构之前的旧一代协议，不能当作对当前 WhatsApp Web 的描述。

- 类型：案例
- 目标：协议 · 网站
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-19
- 收录于：2026-10-19
- 原始资源：<https://github.com/sigalor/whatsapp-web-reveng>
- 一手来源：<https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/whatsapp-web-reveng-legacy-protocol-case/>
- 记录 JSON：<https://awesomerea.org/resources/whatsapp-web-reveng-legacy-protocol-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/whatsapp-web-reveng-legacy-protocol-case/index.md)

## 使用条件与局限

- **前提条件：**使用时需要用户自己的 WhatsApp 账号和手机来扫描配对码，后端会连接 WhatsApp 服务器。protobuf 定义由一个辅助脚本解析公开的 WhatsApp Web JavaScript 包生成。README 的任务清单仍把二进制解码错误增多、二进制报文写入以及更易用的界面列为待完成工作。
- **前提条件：**直接安装需要 Node.js 8+ 和 Python 2.7，以及 websocket-client、simple-websocket-server、curve25519-donna、pycrypto（requirements.txt 中为 pycryptodome）、pyqrcode 和 protobuf；Windows 还需要 Visual C++ for Python 9.0 和仓库提供的头文件。项目提供 shell.nix（Python 2.7、Node.js 13）和 Dockerfile，npm start 会同时启动后端、Node API 和前端。README 说明 Docker 版本还不够稳定，不适合生产部署。
- **范围：**审阅对象为 2024-04-22 的 master 最新提交，该提交只修改了 README；后端和 Node 中继最后修改于 2021 年 8 月，protobuf 结构定义最后修改于 2020 年 3 月，没有发布版本或标签。README 描述的配对流程由手机提供电量等会话信息，也就是 WhatsApp 2021 年 7 月工程博客所说被多设备架构取代的手机镜像式配套设备模式。2022 年的一个 issue 报告扫描二维码后服务器返回 upgrade_md_prod 命令。据 2026-10-20 核查，2024-04-22 的最新提交仍是 GitHub 记录的最后一次推送，仓库未归档，README 未标注其仍在维护、已被取代或已归档。
- **测试证据：**项目没有测试套件：package.json 的 test 脚本只是启动各组件。文档给出的正确性检查是对服务器密钥数据和每条二进制报文做 HMAC 校验，另有浏览器内 JavaScript 演示在扫描二维码后输出解密后的报文。
- **许可：**采用 MIT 许可（LICENSE、package.json）。README 声明项目与 WhatsApp 无关、未获其认可，使用风险自负，并附有加密软件出口声明；WhatsApp 的服务和条款另行适用。

## 一手来源

1. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/README.md>
2. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/backend/whatsapp.py>
3. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/backend/whatsapp_binary_reader.py>
4. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/doc/spec/def.proto>
5. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/doc/spec/protobuf-extractor/index.js>
6. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/package.json>
7. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/requirements.txt>
8. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/shell.nix>
9. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/Dockerfile>
10. <https://github.com/sigalor/whatsapp-web-reveng/blob/04caed2b23680d23a3f39cf2b017c064ff1e85ed/LICENSE>
11. <https://github.com/sigalor/whatsapp-web-reveng/issues/372>
12. <https://engineering.fb.com/2021/07/14/security/whatsapp-multi-device/>

## 同分区更多条目：网站

- [Ruffle：用 Rust 重新实现的 Adobe Flash Player](https://awesomerea.org/zh/resources/ruffle-flash-player-case/index.md) · 案例
- [Littlebird.ai 静态首页重建](https://awesomerea.org/zh/resources/littlebird-static-rebuild-case/index.md) · 案例
- [Sheypoor MCP：从浏览器流量还原分类信息网站接口](https://awesomerea.org/zh/resources/sheypoor-mcp-case/index.md) · 案例
- [ZCode-Android：重建 ZCode 远程控制客户端](https://awesomerea.org/zh/resources/zcode-android-case/index.md) · 案例
- [Power BI API Scraper：解析公开报表查询格式](https://awesomerea.org/zh/resources/power-bi-report-query-case/index.md) · 案例
- [webcrack](https://awesomerea.org/zh/resources/webcrack/index.md) · 工具

## 关于此条目

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