百度文心快码(Baidu Comate)VS Code 扩展 · 协议逆向分析
认证机制 · AI 通信协议 · 内部端点 · OpenAI 兼容代理
对 百度 Comate(文心快码) VS Code 扩展(v4.3.0)做逆向工程,目标是搞清楚它的通信原理:
- 怎么认证的 — 签名认证、设备绑定、OAuth 登录
- 怎么调 AI 的 — 代码补全、Chat 对话、V2 端点
- 内部长啥样 — MCP、Memory、Skill、Voice 等子系统
基于分析结果还写了 Python 代理脚本,把 Comate API 封装成 OpenAI 兼容格式。
| 领域 | 静态分析 | 实测验证 |
|---|---|---|
| 认证机制(签名/machineId/OAuth) | ✅ 100% | ❌ 需有效账号 |
| AI API 端点(补全/Chat/V2) | ✅ 100% | ❌ 需有效 JWT |
| 请求/响应格式 | ✅ 100% | |
| OAuth 登录流程 | ✅ 100% | ❌ 需浏览器登录 |
| 内部端点(MCP/Memory/Skill/Voice/Agent) | ❌ 需内网 | |
| Claude Code 集成 | ✅ 100% | ❌ 公网 405 |
| 插件版本/配置选项 | ✅ 100% | ✅ 已验证 |
| Python 代理脚本 | ✅ 100% | |
| 40+ 端点公网可达性 | ✅ 已测绘 | ✅ 已完成 |
| 报告体系 (45 份) | ✅ 100% 重构完成 | — |
⚠️ 真实状态: 静态代码审计已完成(extension.js 反混淆),但 从未有一个有效的 Comate 账号成功登录并拿到 JWT。所有 AI API 的调用验证依赖 JWT 获取。详见docs/PROGRESS-SUMMARY.md
全部报告已按章节重新组织,像书一样阅读:
| 章节 | 文件 | 内容 |
|---|---|---|
| 架构篇 | docs/01-architecture/ |
整体架构、网络拓扑、混淆机制 |
| 认证篇 | docs/02-authentication/ |
签名/MachineId/OAuth/凭证存储/CC Token(核心) |
| 端点篇 | docs/03-endpoints/ |
补全/Chat/V2/内部/Web Agent 端点 |
| 协议篇 | docs/04-protocol/ |
请求/响应格式、SSE 解析、错误码、模型 |
| 内部机制篇 | docs/05-internals/ |
模块分析、Builder 模式、配置、混淆恢复 |
| 集成篇 | docs/06-integrations/ |
Claude Code/OpenAI 代理/VS Code API |
| 工具篇 | docs/07-tools/ |
登录工具、代理服务器、测试脚本 |
| 验证篇 | docs/08-verification/ |
认证验证、API 调用测试(待补全) |
| 附录 | docs/09-appendix/ |
Python/JS 代码示例、HTTP 抓包、常量、术语 |
每份报告均附带详实的逆向分析代码示例(Python + JavaScript)和 HTTP 抓包示例。
旧版平铺文档仍保留在 docs/ 目录,详见迁移对照表:全书索引。
ComateReverseEngineer/
├── docs/ # 19 份逆向分析报告
│ ├── README.md # 研究报告索引(从这里开始读)
│ ├── Comate-RE-Analysis-Report.md
│ ├── Comate-Protocol-Analysis.md
│ └── ...
├── scripts/ # Python 工具脚本
│ ├── comate_openai_proxy.py # OpenAI 兼容 API 代理
│ ├── comate_login.py # 浏览器 OAuth 登录
│ ├── comate_playwright_login.py # Playwright 自动登录
│ ├── comate_claudecode_exploit.py # Claude Code Token 工具
│ ├── get_jwt.py # JWT 获取脚本
│ └── test_proxy.py # 端到端测试
├── source/ # 提取的源码资料
│ ├── product.json
│ ├── comate-package.json
│ └── string-table.txt
├── config.example.json # 配置模板
├── requirements.txt # Python 依赖
└── README.md
Comate 有三种认证方式:
| 方式 | 原理 | 公网可用? |
|---|---|---|
| 签名认证 | AES-256-ECB(用户名) + SHA-256 签名 | ❌ 返回 405 |
| machineId 绑定 | 设备 ID 获取 client token | ✅ 可用 |
| OAuth Passport | 百度账号浏览器登录 | ✅ 可用(需手动) |
百度账号登录
→ Cookie 认证(BDUSS)
→ /api/user/bind/client(VSCODE) → 设备绑定
→ /client/generate/token(clientId) → 拿到 client token
→ /client/key(clientId) → 拿到 License
→ 把 License 放 token header → 调 AI API 端点
| 常量 | 值 | 干嘛用的 |
|---|---|---|
| AES Key | mSg8iI7BHwXXQiuDLpEqXFCRCH62TMS1 |
加密用户名 |
| Client ID | H14fcP3ZM49fZGJ9 |
应用标识 |
| Claude Code Auth | 1d318a1f298943cda907eb514736744d |
Claude Code Token 认证 |
POST /generate/stream — urlencoded/json → SSE (主要补全端点)
POST /generate/batch — json → JSON
POST /v2/api/generate/stream — json only → SSE
POST /v2/generate — json → JSON
POST /autowork/v1/chat/stream — json → SSE/JSON
POST /autowork/v1/editor/chat — json → JSON
POST /autowork/v1/terminal/chat — json → JSON
POST /autowork/v1/search — json → JSON
ernie-bot · ernie-bot-3-1 · ernie-bot-4 · ernie-bot-4-turbo · ernie-bot-4-turbo-1
# 1. 安装依赖
pip install -r requirements.txt
# 2. 获取 JWT(需要有效百度 Comate 账号)
python scripts/get_jwt.py
# 或者 Playwright 自动版:
python scripts/comate_playwright_login.py
# 3. 启动 OpenAI 兼容代理
python scripts/comate_openai_proxy.py --config config.json
# 4. 测试
curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"ernie-4.0","messages":[{"role":"user","content":"hello"}],"stream":true}'| 项目 | 说明 |
|---|---|
| ComateProxy | 基于本逆向工程开发的 Go 生产级代理(多账号管理 / Web Dashboard / 请求统计 / 加密存储) |
| claude-code-cli-with-openai-api | Claude Code ↔ OpenAI API 转换代理 |
| codegeex-proxy | CodeGeeX AI 代理(模型 codegeex-4 免认证可用) |
本项目仅用于安全研究和学习目的。所有分析基于公开可获取的软件素材。用户应自行承担使用风险,遵守百度 Comate 服务条款。