nowl-it/kgc-private-server

GitHub: nowl-it/kgc-private-server

该项目是一个针对手游《King God Castle》的逆向工程私服工具包,通过 IL2CPP 分析与 ARM64 patch 重建了完整的游戏后端 API,支持离线游戏和深度机制研究。

Stars: 0 | Forks: 0

🏰 King Bug Castle (KGC)

一个功能齐全的《King God Castle》(v170.1.00+)私服与逆向工程工具包

![Python](https://img.shields.io/badge/Python-3.11+-blue.svg?style=flat&logo=python) ![FastAPI](https://img.shields.io/badge/FastAPI-0.103.1-009688.svg?style=flat&logo=fastapi) ![逆向工程](https://img.shields.io/badge/Reverse_Engineering-IL2CPP-purple.svg?style=flat) ![二进制 Patch](https://img.shields.io/badge/Patching-ARM64-red.svg?style=flat)

## 📖 概述 **King Bug Castle** 是一个雄心勃勃的逆向工程项目,它重构了手机游戏《King God Castle》(`com.awesomepiece.castle`)的整个后端 API。 通过 dump IL2CPP metadata 并拦截网络流量,我们成功映射了 **280 多个 REST API endpoint**、400 多个网络模型,并重建了一个本地 FastAPI 服务器,完全模拟了 `axis-game` 基础设施。这允许进行完全离线的游戏、数据修改(金币、宝石、等级)、自定义 artifact 测试和深入机制研究,而无需触及正式的生产服务器。 ## ✨ 核心功能 * 🚀 **完整的 API 模拟**:一个健壮的 Python/FastAPI 服务器,精确复制了 `axis-game.awesomepiece.com` 和 `kgc-k8s-1.awesomepiece.com` 的行为。 * 🛡️ **客户端二进制 Patch (ARM64)**:自动化的 Python pipeline(`rebuild_arm64.py`),通过 Patch `libil2cpp.so` 来击败 SSL/TLS pinning 和 `CertificateHandler` 检查。 * 👻 **XIGNCODE3 绕过**:模拟 Wellbia 反作弊 seed 交换(`/auth/xcdSeed`),允许客户端在没有验证崩溃的情况下启动。 * 🛠️ **`kgc-cli` 工具包**:一个专用的命令行实用程序,用于极速资源提取、S3 CDN 镜像和 XML 数据 diff。 * 🗃️ **热重载状态**:完全控制您的账户。编辑 `state/player.json` 或 `data/*.json` 可即时修改货币、卡组、artifact 和进度。 ## 🛠️ 环境与前置条件 要成功运行后端和部署脚本,您的系统必须满足以下环境要求: * **操作系统**:**Linux、macOS 或 Windows。** 服务器和构建 pipeline 是纯 Python + 少量 Java/adb CLI 工具。(redroid 仅限 Linux,但 BlueStacks / LDPlayer / 真实设备在任何操作系统上均可运行。) * **Python**:Python 3.9 或更高版本。 * **系统工具**(全部在 `PATH` 中):`apktool`、`apksigner`、`zipalign`、`adb` 和 JRE。`python3 setup.py` 会检查它们并打印针对特定操作系统的安装提示。**无需 Android NDK/SDK** - 原生 `.so` 文件已预编译。 * **设备**:**redroid**(Linux/Docker,使用 `androidboot.redroid_gpu_mode=guest` 运行)、**BlueStacks**、**LDPlayer** 或 **真实 Android 手机**(USB 调试)中的任意一种。 * **一键设置**:`python3 setup.py` 然后 `pip install -r server/requirements.txt`。请参阅 **[SETUP.md](SETUP.md)**。 ## 🗺️ 架构与工作流 私服模拟器旨在通过完全复制 King God Castle 的后端架构,来拦截和处理来自游戏客户端的所有流量。 ### 系统组件 1. **FastAPI 后端模拟器(`server.py`)**:作为中心游戏服务器(`axis-game.awesomepiece.com`)。它提供 280 多个动态映射的 REST endpoint。所有状态和逻辑不依赖传统数据库,而是由位于 `server/data/`(用于静态规则)和 `server/state/player.json`(用于实时玩家进度)的平面 JSON 文件驱动。 2. **二进制 Patcher(`rebuild_arm64.py`)**:在游戏连接到模拟器之前,必须修改客户端的 `libil2cpp.so`。这个自动化的 pipeline 注入汇编代码以绕过 SSL pinning(强制 `CertificateHandler.ValidateCertificate` 始终返回 true),并跳过 UI 中的 NRE (NullReferenceException) 触发器。 3. **本地 XML CDN**:游戏在启动时会下载“Patch 资源”(XML 表)。我们在本地镜像了官方 S3 CDN。后端将游戏重定向到我们的本地 CDN(`kgc-cdn-1.awesomepiece.com`),允许我们通过 `rebuild_xml_bundle.py` 注入自定义物品、文本修改和规则更改。 4. **XIGNCODE3 Stub + native hook 宿主(`jni/stub.cpp`)**:如果专有的反作弊模块无法连接到 Wellbia 服务器,就会阻止游戏启动。我们用自己编写的 native 库替换了庞大的 `libxigncode.so`,该库注册了空操作的 `ZCWAVE_*` JNI 方法(伪造 `/auth/xcdSeed` 握手并绕过本地完整性检查),然后更进一步——一个工作线程会 dlopen `libil2cpp.so` 并为游戏内功能安装 il2cpp 方法 hook(一个战斗内的 GameUnit 属性轮询器,以及一个自定义的 Inbox 邮件文本 hook)。根据目标方法的调用方式,使用了两种 hook 技术(针对 Unity 引擎消息的方法指针交换,以及针对直接 C# 调用的 inline detour)。 ``` graph TD Client[📱 Android Client / Emulator] FastAPI[⚡ Local FastAPI Server] CDN[📦 Local XML CDN] XIGNCODE[🛡️ Xigncode Stub + il2cpp hooks] Data[(JSON Data & State)] Client -- "HTTPS (Bypassed TLS via ARM64 Patch)" --> FastAPI Client -- "Fetch XML Patch Bundles" --> CDN FastAPI <--> Data Client <-->|"Faked Seed Handshake"| XIGNCODE style Client fill:#2D3748,stroke:#4A5568 style FastAPI fill:#009688,stroke:#00796B style Data fill:#D69E2E,stroke:#B7791F style CDN fill:#3182CE,stroke:#2B6CB0 ``` ## 🧭 文档中心 我们对整个拆解和重建过程进行了详尽的记录。根据您想执行的操作,选择您的路径: ### 🚀 运行您自己的服务器(从这里开始) 已经克隆了仓库,并且想要一个属于您的工作服务器 + 一个适用于 redroid / BlueStacks / LDPlayer / 真实手机的客户端? 👉 **阅读 [SETUP.md](SETUP.md)** - 一个脚本,适用于任何操作系统和任何设备。 ### 🛠️ 操作和修改您的服务器(授予物品、解锁内容、构建测试关卡) 服务器已在运行,您想授予货币/皮肤/宝藏、解锁受限制的内容,或者制作一个全假人的测试关卡?👉 **阅读 [操作员知识库](docs/README.md)** - 实用指南。 ### 👨‍💻 适用于后端开发者和贡献者 想深入研究服务器内部原理、Patch pipeline 和 API 响应? 👉 **阅读 [服务器设置指南与工作流](server/README.md)** ### 🎮 适用于最终用户 / 玩家 您是否刚刚下载了 `.zip` 发行版,并想知道如何在您的设备/模拟器上安装它? 👉 **阅读 [玩家安装指南](README_PLAYER.md)** ### 🧠 适用于逆向工程师 想了解我们是如何 dump IL2CPP、映射 280 多个路由、击败 SSL pinning,以及 S3 CDN 如何交付 XML patch 的吗? 👉 **阅读 [知识库与拆解笔记](KNOWLEDGE.md)** ## 📂 仓库布局 | 目录 | 用途 | | --- | --- | | 📁 `docs/` | 操作员知识库 - 用于授予物品、解锁内容、编辑关卡/Master数据的指南 ([`docs/README.md`](docs/README.md))。 | | 📁 `server/` | 核心 FastAPI 后端和自动化 ARM64 Patch 脚本 (`rebuild_arm64.py`, `deploy.sh`)。 | | 📁 `server/data/` | 静态 JSON 模型和响应模板 (文档: [`server/data/README.md`](server/data/README.md))。 | | 📁 `api/` | 辅助集成和外部工具 endpoint。 | | 📁 `scripts/` | 用于获取 CDN 数据和提取资源的 Shell 和 Python 自动化脚本。 | | 📁 `xml_history/` | 用于按 Patch 日期存放实时 CDN XML bundle 的历史暂存区。 | | 📁 `il2cpp/` & `ghidra/` | Dump 出来的 metadata (`dump.cs`)、字符串字面量和 Ghidra 项目文件。 | | 📁 `unity/` | 专门为重新打包 `AssetBundle` 创建的 Unity 项目文件。 | | ⚙️ `kgc-cli` | 用于数据操作的核心可执行二进制工具。 | ## 💖 支持与捐赠 如果您发现这个项目对您的研究、逆向工程学习有帮助,或者只是想在私服上找点乐子,请考虑支持我们的开发!维护这个项目需要不断拆解游戏的新更新。 Buy Me a Coffee at ko-fi.com
标签:API模拟, AV绕过, FastAPI, 二进制补丁, 云资产清单, 协议分析, 反作弊绕过, 权限提升, 游戏私服, 逆向工具, 逆向工程