百度文心快码(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% |
| 请求/响应格式 | ✅ 100% |
| OAuth 登录流程 | ✅ 100% |
| 内部端点(MCP/Memory/Skill/Voice/Agent) | ✅ 100% |
| Claude Code 集成 | ✅ 100% |
| 插件版本/配置选项 | ✅ 100% |
| Python 代理脚本 | ✅ 100% |
分析工作已全部完成,项目归档。
⚠️ 实际 AI API 调用依赖有效的 Comate 账号(试用 30 天过期后无法继续)。协议本身已经分析透了,就差一个没过期的 License。
全部 19 份报告 在 docs/ 目录下,docs/README.md 是完整索引。
| 报告 | 内容 |
|---|---|
| 主分析报告 | 入门首选 — 扩展架构、加密、认证、端点全景(982行) |
| 通信协议分析 | 端点映射、请求/响应格式、模型列表(822行) |
| AI 协议终极分析 | V1/V2/Chat 端点、SSE 格式、参数枚举(488行) |
| 完整分析总结 | 老司机快速查阅版(192行) |
| 报告 | 内容 |
|---|---|
| OAuth 流程完整分析 | Passport 登录 → 设备绑定 → JWT 获取 |
| OAuth 深度分析 | 跨域 Cookie、Token Exchange、自动化方案 |
| Claude Code Token 分析 | Claude Code 集成原理与 Token 获取 |
| 账号配额分析 | 试用额度、号池方案、成本估算 |
| 报告 | 内容 |
|---|---|
| 扩展源码分析 | Extension.js v4.3.0 源码分析 |
| AI API 深度分析 | 请求/响应参数解析、模型路由 |
| API Proposals 分析 | VS Code API Proposals 机制 |
| 内部端点分析 | MCP、Memory、Skill、Voice 等子系统 |
| 全端点发现 | 所有公开/内部端点清单 |
完整索引:👉
docs/README.md
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 服务条款。