# SteamKit Steam 网络协议库

> 实现 Valve Steam 网络协议客户端的 .NET 库，涵盖连接管理服务器会话、身份验证、好友、统一服务消息与 Game Coordinator 消息、Web API 调用以及 CDN depot 下载。消息类由子模块跟踪的 Steam protobuf 和项目自有的 SteamLanguage 定义生成。其 Resources 目录还提供协议研究工具：NetHook2 是挂钩正在运行的 Steam 客户端、转储其收发网络消息的 Windows DLL，NetHookAnalyzer2 用于查看这些转储，ProtobufDumper 则从可执行文件中恢复 protobuf 定义。

- 类型：工具
- 目标：游戏 · 协议
- 类别：协议分析工具
- 关联：基础工具
- 来源复核于：2026-10-19
- 收录于：2026-10-27
- 原始资源：<https://github.com/SteamRE/SteamKit>
- 一手来源：<https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/readme.md>
- 目录页面：<https://awesomerea.org/zh/resources/steamkit/>
- 记录 JSON：<https://awesomerea.org/resources/steamkit/record.json>
- 英文版：[English](https://awesomerea.org/resources/steamkit/index.md)

## 使用条件与局限

- 所审阅的 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 的服务与条款独立于该库的许可证适用。

## 一手来源

1. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/readme.md>
2. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/SteamKit2/SteamKit2/SteamKit2.csproj>
3. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/global.json>
4. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.gitmodules>
5. <https://github.com/SteamRE/SteamKit/tree/49387aec55c24104946af7a7b160148358e538b4/Samples>
6. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/NetHook2/readme.md>
7. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/ProtobufDumper/ProtobufDumper/ExecutableScanner.cs>
8. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/SteamLanguage/emsg.steamd>
9. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.github/workflows/steamkit2-build.yaml>
10. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.github/workflows/update-protobufs.yaml>
11. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/SteamKit2/Tests/Tests.csproj>
12. <https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/LICENSE>
13. <https://github.com/SteamRE/SteamKit/releases/tag/3.5.0>
14. <https://www.nuget.org/packages/SteamKit2/3.4.0>

## 同分区更多条目：协议

- [protobuf-inspector 未知定义 Protobuf 解析工具](https://awesomerea.org/zh/resources/protobuf-inspector/index.md) · 工具
- [libimobiledevice iOS 设备协议库](https://awesomerea.org/zh/resources/libimobiledevice/index.md) · 工具
- [Sniffle 蓝牙低功耗嗅探器](https://awesomerea.org/zh/resources/sniffle/index.md) · 工具
- [Packetry USB 2.0 协议分析工具](https://awesomerea.org/zh/resources/packetry/index.md) · 工具
- [Caring Caribou 汽车 CAN 总线安全探索工具](https://awesomerea.org/zh/resources/caringcaribou/index.md) · 工具
- [protodump Protobuf 定义恢复工具](https://awesomerea.org/zh/resources/protodump/index.md) · 工具

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
