{
  "added_at": "2026-11-09",
  "additional_evidence_urls": [
    "https://github.com/fluofoxxo/outrun/blob/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/main1.go",
    "https://github.com/fluofoxxo/outrun/blob/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/go.mod",
    "https://github.com/fluofoxxo/outrun/tree/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/muxhandlers",
    "https://github.com/fluofoxxo/outrun/tree/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/config",
    "https://github.com/fluofoxxo/outrun/blob/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/LICENSE",
    "https://github.com/fluofoxxo/outrun/releases/tag/v1.0.1"
  ],
  "category": "reconstruction-cases",
  "class": "game",
  "description_en": "Reimplements the game server for the Sonic Runners mobile game as a Go service, so Android and iOS clients redirected to it can log in, play Timed and Story modes and use the shop, roulettes, character and Chao progression, events, notices and basic rankings. The README says it was reverse engineered from the Sonic Runners Revival server, on whose code it bases much of its own; it serves about 40 HTTP endpoints of the client's API, decrypts and encrypts AES-CBC request payloads and keeps player state in a bbolt database.",
  "description_zh": "以 Go 服务重新实现手游 Sonic Runners 的游戏服务器，使改为连接它的 Android 和 iOS 客户端能够登录、游玩计时模式和故事模式，并使用商店、轮盘、角色与 Chao 养成、活动、公告和基础排行榜。README 称它是从 Sonic Runners Revival 服务器逆向而来，自身大量代码也以该服务器为基础；它提供客户端 API 的约 40 个 HTTP 端点，对 AES-CBC 请求载荷进行解密和加密，并用 bbolt 数据库保存玩家状态。",
  "entry_url": "https://awesomerea.org/resources/outrun-sonic-runners-server-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/outrun-sonic-runners-server-case/",
  "evidence_class": 1,
  "evidence_status": "observed",
  "evidence_url": "https://github.com/fluofoxxo/outrun/blob/750d7b9729a199fcc46acd7e55dfad1ccddd5a8b/README.md",
  "group": "cases",
  "id": "outrun-sonic-runners-server-case",
  "json_url": "https://awesomerea.org/resources/outrun-sonic-runners-server-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/outrun-sonic-runners-server-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/outrun-sonic-runners-server-case/index.md",
  "name": "outrun: a Sonic Runners custom server",
  "name_zh": "outrun：Sonic Runners 自定义服务器",
  "preview_kind": "demo",
  "reconstruction_method": "other",
  "record_type": "resource",
  "relationship": "independent-reconstruction",
  "requirements": [
    "Release v1.0.1 provides Windows, macOS and Linux server builds for amd64 and arm64. The README aims to cover every non-debug endpoint; no tests are listed.",
    "Builds with Go. go.mod declares Go 1.17, while the README build steps use Go 1.15.8 and warn that Go 1.16+ breaks some RPC programs. Configuration uses config.json and optional event, info and game files; the default client port is 9001.",
    "Play needs the user’s Sonic Runners client. The README targets the v2.0.3 Android APK, modified to connect to the server. The repository contains no client or game assets.",
    "The README credits contributors for the client-traffic AES key, traffic logs and story-mode data.",
    "Server code is GPL-3.0; the game, client, assets and trademarks retain their own rights."
  ],
  "requirements_zh": [
    "发行版 v1.0.1 提供 Windows、macOS 和 Linux 的 amd64 与 arm64 服务器构建。README 目标是覆盖全部非调试端点；未列出测试。",
    "使用 Go 构建。go.mod 声明 Go 1.17，README 构建步骤使用 Go 1.15.8，并提醒 Go 1.16+ 会使部分 RPC 程序无法构建。配置使用 config.json 及可选的活动、信息和游戏文件；客户端默认端口为 9001。",
    "游玩需要使用者自己的 Sonic Runners 客户端。README 针对 v2.0.3 Android APK，需修改后连接服务器。仓库不含客户端或游戏素材。",
    "README 将客户端通信的 AES 密钥、通信日志和故事模式数据归功于贡献者。",
    "服务器代码采用 GPL-3.0；游戏、客户端、素材和商标保留各自权利。"
  ],
  "scope": "partial",
  "targets": [
    "game",
    "protocol"
  ],
  "url": "https://github.com/fluofoxxo/outrun",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
