Files
re-teamspeak/docs
ReTeamSpeak ea08823c97
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
Initial commit: ReTeamSpeak cross-platform TeamSpeak client
- 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
2026-05-12 14:41:54 +09:00
..

TeamSpeak 逆向工程分析文档

本文档包含对 TeamSpeak 3 协议和相关代码库的分析结果,用于指导后续开发工作。

文档结构

参考代码库

本分析基于以下参考代码库:

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 的商业模式。