{
  "added_at": "2026-10-27",
  "additional_evidence_urls": [
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/SteamKit2/SteamKit2/SteamKit2.csproj",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/global.json",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.gitmodules",
    "https://github.com/SteamRE/SteamKit/tree/49387aec55c24104946af7a7b160148358e538b4/Samples",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/NetHook2/readme.md",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/ProtobufDumper/ProtobufDumper/ExecutableScanner.cs",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/Resources/SteamLanguage/emsg.steamd",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.github/workflows/steamkit2-build.yaml",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/.github/workflows/update-protobufs.yaml",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/SteamKit2/Tests/Tests.csproj",
    "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/LICENSE",
    "https://github.com/SteamRE/SteamKit/releases/tag/3.5.0",
    "https://www.nuget.org/packages/SteamKit2/3.4.0"
  ],
  "category": "protocol-analysis",
  "description_en": ".NET library that implements the client side of Valve’s Steam network protocol: connection-manager sessions, authentication, friends, unified service and Game Coordinator messages, Web API calls and CDN depot downloads. Message classes are generated from Steam protobufs tracked in a submodule and from the project’s own SteamLanguage definitions. Its Resources tree adds protocol-research tools: NetHook2, a Windows DLL that hooks a running Steam client to dump the network messages it exchanges, NetHookAnalyzer2 for viewing those dumps, and ProtobufDumper for recovering protobuf definitions from executables.",
  "description_zh": "实现 Valve Steam 网络协议客户端的 .NET 库，涵盖连接管理服务器会话、身份验证、好友、统一服务消息与 Game Coordinator 消息、Web API 调用以及 CDN depot 下载。消息类由子模块跟踪的 Steam protobuf 和项目自有的 SteamLanguage 定义生成。其 Resources 目录还提供协议研究工具：NetHook2 是挂钩正在运行的 Steam 客户端、转储其收发网络消息的 Windows DLL，NetHookAnalyzer2 用于查看这些转储，ProtobufDumper 则从可执行文件中恢复 protobuf 定义。",
  "entry_url": "https://awesomerea.org/resources/steamkit/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/steamkit/",
  "evidence_url": "https://github.com/SteamRE/SteamKit/blob/49387aec55c24104946af7a7b160148358e538b4/readme.md",
  "group": "tools",
  "id": "steamkit",
  "json_url": "https://awesomerea.org/resources/steamkit/record.json",
  "kind": "tool",
  "markdown_url": "https://awesomerea.org/resources/steamkit/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/steamkit/index.md",
  "name": "SteamKit",
  "name_zh": "SteamKit Steam 网络协议库",
  "record_type": "resource",
  "relationship": "foundation",
  "requirements": [
    "The reviewed master head is identical to GitHub release 3.5.0 of 2026-10-19; at review NuGet still listed 3.4.0 as the newest SteamKit2 package. The README requires the .NET 10 runtime to use the library and the .NET 10 SDK to build it, although the library project multi-targets net8.0 and net10.0. Documentation consists of XML API docs, the wiki and numbered samples covering login, QR authentication, web cookies, friends, Web API and a Dota Game Coordinator request.",
    "Authenticated features need the user’s own Steam account. The library follows Valve’s undocumented, changing protocol: a weekly workflow regenerates message classes from the SteamTracking protobuf submodule and opens a pull request, and the NetHook2 readme notes that releases can lag behind Steam changes.",
    "NetHook2 is a Windows-only C++ DLL built with Visual Studio 2022 and vcpkg that needs the x86 Visual C++ redistributable. Its readme says it depends on binary signature scans of the Steam client that updates can break, and that Steam may crash while it is attached. NetHookAnalyzer2 is a Windows GUI; CI publishes both as workflow artifacts. They inspect the user’s own client traffic.",
    "CI builds the library, SteamLanguage parser, protobuf tools and samples on Windows, macOS and Linux (x64 and ARM) and runs the xUnit v3 test project, whose fixtures include recorded packets and small depot manifest and chunk samples. The tests check parsing, crypto helpers, async jobs and depot handling, not equivalence with Valve’s client.",
    "LGPL-2.1 (LICENSE). The tracked Steam protobuf definitions come from a separate submodule, and Valve’s services and terms apply independently of the library license."
  ],
  "requirements_zh": [
    "所审阅的 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 的服务与条款独立于该库的许可证适用。"
  ],
  "targets": [
    "game",
    "protocol"
  ],
  "url": "https://github.com/SteamRE/SteamKit",
  "verification": "source-reviewed",
  "verified_at": "2026-10-19"
}
