工具
SteamKit Steam 网络协议库
实现 Valve Steam 网络协议客户端的 .NET 库,涵盖连接管理服务器会话、身份验证、好友、统一服务消息与 Game Coordinator 消息、Web API 调用以及 CDN depot 下载。消息类由子模块跟踪的 Steam protobuf 和项目自有的 SteamLanguage 定义生成。其 Resources 目录还提供协议研究工具:NetHook2 是挂钩正在运行的 Steam 客户端、转储其收发网络消息的 Windows DLL,NetHookAnalyzer2 用于查看这些转储,ProtobufDumper 则从可执行文件中恢复 protobuf 定义。
使用条件与局限
- 所审阅的 master 最新提交与 2026-10-19 的 GitHub 3.5.0 版完全一致;审阅时 NuGet 上最新的 SteamKit2 包仍为 3.4.0。README 要求使用该库需 .NET 10 运行时、构建需 .NET 10 SDK,但库项目同时面向 net8.0 和 net10.0。文档包括 XML API 文档、wiki 以及按编号排列的示例,涵盖登录、二维码认证、网页 Cookie、好友、Web API 和 Dota Game Coordinator 请求。
- 需要身份验证的功能要用用户自己的 Steam 账号;本条目不记录任何账号。该库所跟随的 Valve 协议没有公开文档且不断变化:每周运行的工作流会根据 SteamTracking protobuf 子模块重新生成消息类并提交拉取请求,NetHook2 的说明也指出版本发布可能落后于 Steam 的变化。
- NetHook2 是仅限 Windows 的 C++ DLL,使用 Visual Studio 2022 和 vcpkg 构建,需要 x86 版 Visual C++ 运行库。其说明称它依赖对 Steam 客户端的二进制特征扫描,客户端更新可能使之失效,挂接期间 Steam 也可能崩溃。NetHookAnalyzer2 是 Windows 图形界面工具;CI 会把两者作为工作流产物发布。它们检查的是用户自己客户端的流量,本条目不提供使用步骤。
- CI 在 Windows、macOS 和 Linux(x64 与 ARM)上构建该库、SteamLanguage 解析器、protobuf 工具和示例,并运行 xUnit v3 测试项目;测试样本包括录制的数据包以及小型 depot 清单和数据块样本。测试检查解析、加密辅助函数、异步任务和 depot 处理,并不检验与 Valve 客户端的等价性;本次来源核查未运行任何测试。
- 采用 LGPL-2.1(LICENSE)。所跟踪的 Steam protobuf 定义来自独立的子模块,Valve 的服务与条款独立于该库的许可证适用。所审阅来源未确立任何 AI 或 REA 的使用。
关于此条目
- 类型
- 工具
- 类别
- 协议分析工具
- 关联
- 基础工具
- 目标
- 游戏 · 协议
来源复核于
说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。
一手来源
- readme.md GitHub · SteamRE/SteamKit · 修订 49387ae
- SteamKit2/SteamKit2/SteamKit2.csproj GitHub · SteamRE/SteamKit · 修订 49387ae
- global.json GitHub · SteamRE/SteamKit · 修订 49387ae
- .gitmodules GitHub · SteamRE/SteamKit · 修订 49387ae
- Samples GitHub · SteamRE/SteamKit · 修订 49387ae
- Resources/NetHook2/readme.md GitHub · SteamRE/SteamKit · 修订 49387ae
- Resources/ProtobufDumper/ProtobufDumper/ExecutableScanner.cs GitHub · SteamRE/SteamKit · 修订 49387ae
- Resources/SteamLanguage/emsg.steamd GitHub · SteamRE/SteamKit · 修订 49387ae
- .github/workflows/steamkit2-build.yaml GitHub · SteamRE/SteamKit · 修订 49387ae
- .github/workflows/update-protobufs.yaml GitHub · SteamRE/SteamKit · 修订 49387ae
- SteamKit2/Tests/Tests.csproj GitHub · SteamRE/SteamKit · 修订 49387ae
- LICENSE GitHub · SteamRE/SteamKit · 修订 49387ae
- https://github.com/SteamRE/SteamKit/releases/tag/3.5.0
- https://www.nuget.org/packages/SteamKit2/3.4.0