A clean-room, modern .NET 8 reimplementation of a phBot-equivalent for Silkroad Online — built to work against any Silkroad variant (iSRO, vSRO, and SR-R private servers) through per-server profiles.
Status: Phase 2 in progress. The TCP proxy works and can log raw packet traffic. The security layer (handshake + per-packet encryption) is written but unverified against live server traffic.
Architecture
A layered .NET solution that separates the game-archive format, the wire protocol, the proxy, and the app shell — so each concern can be tested and evolved on its own.
SilkroadBot/
├── src/
│ ├── SilkroadBot.Pk2/ Pk2 (Joymax archive) reader — Blowfish ECB
│ ├── SilkroadBot.Security/ Silkroad packet protocol — framer, Blowfish, handshake
│ ├── SilkroadBot.Core/ Game state, server profiles, networking glue
│ ├── SilkroadBot.Proxy/ TCP proxy + packet logger
│ └── SilkroadBot.App/ CLI entry point (Pk2 dumper today, GUI later)
├── tools/
│ └── Pk2KeyFinder/ Stand-alone brute-force tool for non-Joymax pk2 keys
└── tests/
└── SilkroadBot.Tests/ xUnit testsHighlights
- Pk2 archive reader — parses Joymax's encrypted
Media.pk2game archives (Blowfish ECB), with a standalone brute-force key finder for non-Joymax (private-server) archives. - Protocol & security layer — a packet framer plus the Silkroad handshake and per-packet Blowfish encryption, implemented from spec.
- Packet-logging proxy — a TCP proxy that sits between client and gateway/agent server and captures raw traffic for analysis.
- Server profiles — designed from the start to target multiple Silkroad variants (iSRO, vSRO, SR-R private servers) rather than hard-coding one.
- Tested & documented — xUnit test project plus architecture, roadmap, status, and runbook docs to make the work resumable from any machine.
Tech stack
| Layer | Choice |
|---|---|
| Runtime | .NET 8 |
| Language | C# |
| Crypto | Blowfish (ECB for Pk2, per-packet for the wire) |
| Networking | Raw TCP proxy + packet framer |
| Tests | xUnit |
Acknowledgements
The protocol details follow the reverse-engineering work of the Silkroad community — notably pushedx and DaxterSoul on Silkroad-Security-API. Reimplemented here from spec; no source is copied verbatim.