Tool
SteamKit
.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.
Requirements & limits
- 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; this record names none. 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, and this record gives no usage steps.
- 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; this source review ran none of them.
- 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. The reviewed sources establish no AI or REA use.
About this entry
- Type
- Tool
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Targets
- Game · Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- readme.md GitHub · SteamRE/SteamKit · Revision 49387ae
- SteamKit2/SteamKit2/SteamKit2.csproj GitHub · SteamRE/SteamKit · Revision 49387ae
- global.json GitHub · SteamRE/SteamKit · Revision 49387ae
- .gitmodules GitHub · SteamRE/SteamKit · Revision 49387ae
- Samples GitHub · SteamRE/SteamKit · Revision 49387ae
- Resources/NetHook2/readme.md GitHub · SteamRE/SteamKit · Revision 49387ae
- Resources/ProtobufDumper/ProtobufDumper/ExecutableScanner.cs GitHub · SteamRE/SteamKit · Revision 49387ae
- Resources/SteamLanguage/emsg.steamd GitHub · SteamRE/SteamKit · Revision 49387ae
- .github/workflows/steamkit2-build.yaml GitHub · SteamRE/SteamKit · Revision 49387ae
- .github/workflows/update-protobufs.yaml GitHub · SteamRE/SteamKit · Revision 49387ae
- SteamKit2/Tests/Tests.csproj GitHub · SteamRE/SteamKit · Revision 49387ae
- LICENSE GitHub · SteamRE/SteamKit · Revision 49387ae
- https://github.com/SteamRE/SteamKit/releases/tag/3.5.0
- https://www.nuget.org/packages/SteamKit2/3.4.0
More in Protocols
- protobuf-inspector · Tool
- libimobiledevice · Tool
- Sniffle · Tool
- Packetry · Tool
- open-appleremote: Siri Remote protocol reconstruction · Case study
- GAMEKB-K17: reconstructing a macropad configuration protocol · Case study