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
79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
# TeamSpeak 逆向工程分析文档
|
|
|
|
本文档包含对 TeamSpeak 3 协议和相关代码库的分析结果,用于指导后续开发工作。
|
|
|
|
## 文档结构
|
|
|
|
- **[protocol.md](protocol.md)** - TeamSpeak 3 协议详细分析
|
|
- **[protocol_stack.md](protocol_stack.md)** - TeamSpeak 3 协议栈深度分析(层次结构、加密机制、可靠传输等)
|
|
- **[architecture.md](architecture.md)** - 系统架构分析 (SAD)
|
|
- **[components.md](components.md)** - 组件设计分析 (SDD)
|
|
- **[requirements.md](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 的自定义协议,具有以下特点:
|
|
|
|
1. **加密**: 使用 AES-128-CTR + OMAC (EAX 模式)
|
|
2. **压缩**: 使用 QuickLZ 算法
|
|
3. **分片**: 支持大数据包分片传输
|
|
4. **可靠性**: 使用选择性重传机制确保可靠传输
|
|
5. **身份验证**: 使用 ECDH 密钥交换和 RSA 拼图防攻击
|
|
|
|
## 开发建议
|
|
|
|
基于分析结果,建议开发工作遵循以下原则:
|
|
|
|
1. **协议兼容性**: 严格遵循 tsdeclarations 中的协议定义
|
|
2. **代码复用**: 优先使用 tsclientlib 作为底层库
|
|
3. **模块化设计**: 参考 Qint 的架构,分离前端、代理和核心逻辑
|
|
4. **测试覆盖**: 参考 SimpleBot 的测试方法,确保协议兼容性
|
|
|
|
## 法律声明
|
|
|
|
本分析仅用于学习和研究目的。TeamSpeak 是 TeamSpeak Systems GmbH 的商标。开发的客户端应遵守相关法律法规,不得用于商业用途或侵犯 TeamSpeak 的商业模式。 |