How azrin619/linux-kms works
This is a C# KMS server emulator: activation clients send requests over TCP, which are dispatched through RPC and version-specific KMS handlers; the server constructs activation responses. The graph also preserves the documented container deployment capability. Edges follow shown calls, source-index references, or README statements; several implementation details, including the TCP listener internals and V4 cryptographic path, were not fully sampled.
Main entry points: KMSServer.cs Activation logic · KMSRequestHandler.cs Version dispatcher · KMSEmulator.cs Server lifecycle · RpcMessageHandler.cs RPC dispatcher
Components 19
Server runtime
- Console entry
KMSEmulator.NET/Program.cs - Server lifecycle
KMSEmulator/KMSEmulator.cs - TCP listener
KMSEmulator/TcpServer.cs
RPC transport
- RPC dispatcher
KMSEmulator/RPC/RpcMessageHandler.cs - Bind negotiation
KMSEmulator/RPC/Bind/RpcBindMessageHandler.cs - RPC request handler
KMSEmulator/RPC/Request/RpcRequestMessageHandler.cs - RPC message model
KMSEmulator/RPC/RpcMessageBase.cs
KMS activation
- Version dispatcher
KMSEmulator/KMS/KMSRequestHandler.cs - KMS V4 handler
KMSEmulator/KMS/V4/KMSV4Handler.cs - KMS V5 handler
KMSEmulator/KMS/V5/KMSV5Handler.cs - KMS V6 handler
KMSEmulator/KMS/V6/KMSV6Handler.cs - Activation logic
KMSEmulator/KMS/KMSServer.cs - Activation request
KMSEmulator/KMS/KMSRequest.cs - Activation response
KMSEmulator/KMS/KMSResponseBase.cs - PID generation
KMSEmulator/KMS/KMSPIDGenerator.cs
Configuration and logging
- Server settings
KMSEmulator/KMSServerSettings.cs - Logging
KMSEmulator/Logging/ILogger.cs - Container deployment
Dockerfile
Other components
- Activation client
Connections 23
- Activation client → TCP listener: sends activation
README.md - Console entry → Server lifecycle: starts
KMSEmulator.NET/Program.cs - Server lifecycle → TCP listener: starts listener
KMSEmulator/KMSEmulator.cs - Server lifecycle → RPC dispatcher: configures handler
KMSEmulator/KMSEmulator.cs - TCP listener → RPC dispatcher: dispatches requests
KMSEmulator/TcpServer.cs - RPC dispatcher → Bind negotiation: routes bind
KMSEmulator/RPC/RpcMessageHandler.cs - RPC dispatcher → RPC request handler: routes request
KMSEmulator/RPC/RpcMessageHandler.cs - RPC request handler → Version dispatcher: forwards activation
KMSEmulator/RPC/Request/RpcRequestMessageHandler.cs - Bind negotiation → Server settings: reads port
KMSEmulator/RPC/Bind/RpcBindMessageHandler.cs - Version dispatcher → KMS V4 handler: dispatches V4
KMSEmulator/KMS/KMSRequestHandler.cs - Version dispatcher → KMS V5 handler: dispatches V5
KMSEmulator/KMS/KMSRequestHandler.cs - Version dispatcher → KMS V6 handler: dispatches V6
KMSEmulator/KMS/KMSRequestHandler.cs - Version dispatcher → Server settings: uses settings
KMSEmulator/KMS/KMSRequestHandler.cs - KMS V4 handler → Activation logic: executes activation
KMSEmulator/KMS/V4/KMSV4Handler.cs - KMS V5 handler → Activation logic: executes activation
KMSEmulator/KMS/V5/KMSV5Handler.cs - KMS V6 handler → Activation logic: executes activation
KMSEmulator/KMS/V6/KMSV6Handler.cs - Activation logic → Activation request: parses request
KMSEmulator/KMS/KMSServer.cs - Activation logic → Activation response: builds response
KMSEmulator/KMS/KMSServer.cs - Activation logic → PID generation: generates PID
KMSEmulator/KMS/KMSServer.cs - Activation logic → Server settings: reads activation values
KMSEmulator/KMS/KMSServer.cs - Version dispatcher → Logging: logs requests
KMSEmulator/KMS/KMSRequestHandler.cs - Activation logic → Logging: logs activation
KMSEmulator/KMS/KMSServer.cs - Container deployment → Server lifecycle: packages service
README.md