Aver005/deep-reverse

GitHub: Aver005/deep-reverse

该项目是对 DeepSeek 网页端 HTTP API 进行系统化逆向工程后产出的协议规范文档与配套 SDK 工具集,帮助开发者理解并集成 DeepSeek 的私有接口。

Stars: 0 | Forks: 0

# deep-reverse 针对 **chat.deepseek.com** 逆向工程的 HTTP API 规范,已通过 2026-06-27 的真实账号实时流量验证。 这是早期两份逆向工程草案(`deep-reverse` v1 和 `deep-reverse-v2`)的合并版。原始的 v1 版本保留在 [`.old/`](./.old) 中。 ## 目录结构 ``` docs/ – human-readable endpoint & flow documentation (start here) schemas/ – JSON Schema (draft-07) for request/response bodies types/ – TypeScript type definitions, modular per domain scripts/ – runnable SDK + capture/analysis utilities (bun) .old/ – the original v1 draft, kept for reference ``` ## 文档索引 - [概述](./docs/00-overview.md) – base URL、headers、envelope、更正表 - [通用](./docs/01-common.md) – device id、分页、PoW 概述、错误 - [身份验证](./docs/02-authentication.md) - [客户端设置](./docs/03-client-settings.md) - [聊天会话](./docs/04-chat-sessions.md) - [对话补全](./docs/05-chat-completion.md) – SSE endpoint - [文件上传](./docs/06-file-upload.md) - [分享](./docs/07-share.md) - [POW 挑战](./docs/08-pow-challenge.md) – DeepSeekHashV1 / WASM - [SSE 协议](./docs/09-sse-protocol.md) - [模型切换](./docs/10-model-switching.md) - [搜索 / 索引](./docs/11-search-index.md) - [导出](./docs/12-export.md) - [功能开关与遥测](./docs/13-feature-flags-telemetry.md) - [场景](./docs/15-scenarios.md) – 16 个端到端流程 - [页面加载序列](./docs/16-page-load-sequence.md) ## 脚本 ``` bun install # 登录(将 DEEPSEEK_TOKEN / DEEPSEEK_DEVICE_ID 写入 .env) DEEPSEEK_EMAIL=... DEEPSEEK_PASSWORD=... bun run login bun run sessions list bun run chat "Hello, how are you?" bun run upload ./test-upload.txt ``` `capture.ts` / `analyze.ts` 通过 Playwright 重新捕获实时流量,并生成一份 markdown endpoint 报告 —— 这在 DeepSeek 发布 更新后刷新规范时非常有用。 ## 验证状态 已通过实时流量(2026-06-27)验证的字段: - `device_id` 是一个 UUID v4(不是哈希值,也不是 base64 随机字符串) - PoW 通过 `sha3_wasm_bg..wasm` 使用 `DeepSeekHashV1`(属于 SHA-3 系列, 而不是 SHA-256 —— 具体的构造方式仍需进行 WASM 反编译) - `TitleType` ∈ { `WIP`, `SYSTEM`, `USER` }(早期草案中的 `MANUAL` / `FIXED` 是错误的) - `FragmentType` ∈ { `REQUEST`, `RESPONSE`, `THINK` }(不是 `THINKING`) - `share/create` 需要 `{ chat_session_id, message_ids: number[] }` - `users/settings` 返回 `{ training_allowed: boolean }` - `client/settings/report` 的请求体为 `{ settings_ids, did, sso_id }` - 思考 SSE 流程:THINK fragment → `elapsed_secs` SET → RESPONSE fragment - `share/list` 需要 `count` 查询参数;`share/content` 是公开的 ## 注意事项 - `scripts/client.ts` 中的 `solvePow` 会启动来自 `fe-static.deepseek.com/.../37627..js` 的官方 wasm-bindgen worker,并向其发送 `pow-challenge` 消息 —— 已针对实时流量完成端到端验证 (返回与官网自身生成的相同的 nonce)。它在首次使用时需要网络访问权限 以下载 worker bundle;该 bundle 的 URL 是硬编码的, 如果 DeepSeek 轮换了哈希值,它就会失效。在生产环境中使用时,请在 本地镜像该 bundle。 - `MessageStatus.ABORTED` 被 Web 客户端引用,但并未被直接 捕获;来自 v1 草案的 `FAILED` / `CANCELLED` 状态未经证实,因此已被省略。 - `index/*`、`export_all`、`wechat_js_sdk_signature`、`client/span` 的请求体是 根据 v1 草案 / 客户端行为推断出来的;未捕获到实际请求体。
标签:AI工具, API文档, DeepSeek, TypeScript, 云资产清单, 安全插件, 数字取证, 熵值分析, 特征检测, 网络协议分析, 自动化攻击, 自动化脚本, 逆向工程