CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
CI/CD / Test (ubuntu-latest) (push) Failing after 2s
- tscore: Protocol implementation (packets, crypto, connection handshake) - tsaudio: Audio engine (capture, playback, codec, VAD, jitter buffer) - tsdb: SQLite database (identities, bookmarks, messages, settings) - shared: Core types and events - tauri-app: Tauri v2 desktop application with React frontend - docs: SRS, SAD, SDD documentation - CI/CD: GitHub Actions workflow - 32 unit tests passing
TeamSpeak 逆向工程分析文档
本文档包含对 TeamSpeak 3 协议和相关代码库的分析结果,用于指导后续开发工作。
文档结构
- protocol.md - TeamSpeak 3 协议详细分析
- protocol_stack.md - TeamSpeak 3 协议栈深度分析(层次结构、加密机制、可靠传输等)
- architecture.md - 系统架构分析 (SAD)
- components.md - 组件设计分析 (SDD)
- requirements.md - 需求分析 (SRS)
参考代码库
本分析基于以下参考代码库:
1. tsdeclarations
- 位置:
refercence/tsdeclarations/ - 描述: TeamSpeak 3 协议的机器可读定义,包含消息、数据包、枚举、错误码等定义
- 关键文件:
ts3protocol.md- 协议详细规范Packets.txt- 数据包结构定义Messages.toml- 消息定义Book.toml- 数据结构定义Enums.toml- 枚举类型定义Errors.csv- 错误码定义
2. tsclientlib
- 位置:
refercence/tsclientlib/ - 描述: Rust 实现的 TeamSpeak 客户端库,提供高级 API
- 关键组件:
tsclientlib- 主客户端库tsproto- 底层协议实现ts-bookkeeping- 客户端/频道状态管理tsproto-packets- 数据包解析tsproto-structs- 协议结构体tsproto-types- 基础类型定义
3. Qint
- 位置:
refercence/Qint/ - 描述: 现代化的 TeamSpeak 客户端,基于 Tauri 框架
- 技术栈:
- 后端: Rust (Tauri)
- 前端: TypeScript/JavaScript
- 代理层: Rust (websocket/web)
4. SimpleBot
- 位置:
refercence/SimpleBot/ - 描述: 简单的 TeamSpeak 聊天机器人,展示 tsclientlib 的使用
- 功能: 连接到服务器,响应特定消息,支持脚本执行
5. ts3stats
- 位置:
refercence/ts3stats/ - 描述: TeamSpeak 3 服务器统计工具
- 技术栈: Python
- 功能: 分析服务器日志,生成用户统计图表
协议概述
TeamSpeak 3 使用基于 UDP 的自定义协议,具有以下特点:
- 加密: 使用 AES-128-CTR + OMAC (EAX 模式)
- 压缩: 使用 QuickLZ 算法
- 分片: 支持大数据包分片传输
- 可靠性: 使用选择性重传机制确保可靠传输
- 身份验证: 使用 ECDH 密钥交换和 RSA 拼图防攻击
开发建议
基于分析结果,建议开发工作遵循以下原则:
- 协议兼容性: 严格遵循 tsdeclarations 中的协议定义
- 代码复用: 优先使用 tsclientlib 作为底层库
- 模块化设计: 参考 Qint 的架构,分离前端、代理和核心逻辑
- 测试覆盖: 参考 SimpleBot 的测试方法,确保协议兼容性
法律声明
本分析仅用于学习和研究目的。TeamSpeak 是 TeamSpeak Systems GmbH 的商标。开发的客户端应遵守相关法律法规,不得用于商业用途或侵犯 TeamSpeak 的商业模式。