Skip to content

vibe-coding-labs/ComateReverseEngineer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComateReverseEngineer

百度文心快码(Baidu Comate)VS Code 扩展 · 协议逆向分析
认证机制 · AI 通信协议 · 内部端点 · OpenAI 兼容代理

分析进度 License


这个仓库是做什么的?

百度 Comate(文心快码) VS Code 扩展(v4.3.0)做逆向工程,目标是搞清楚它的通信原理:

  1. 怎么认证的 — 签名认证、设备绑定、OAuth 登录
  2. 怎么调 AI 的 — 代码补全、Chat 对话、V2 端点
  3. 内部长啥样 — 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 认证

📡 AI API 端点

代码补全

POST /generate/stream          — urlencoded/json → SSE (主要补全端点)
POST /generate/batch           — json → JSON
POST /v2/api/generate/stream   — json only → SSE
POST /v2/generate              — json → JSON

Chat 对话

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 服务条款。

About

对百度的Comate的逆向分析

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages