本项目永久免费,请勿将本项目用于商业用途或者是进行二次分发!!
某游戏是一款基于 Unity IL2CPP(C# 已编译不可读)与 Lua 热更(逻辑近乎明文)的手游,目前已关服。本项目通过逆向还原其网络协议、配置数据与客户端逻辑,搭建一套本地离线服务端,让游戏能够离线状态下一键运行,并在此之上提供 Mod 支持(xLua 运行时执行外部 Lua 代码),目标在日服与国服客户端之间通用。
原始日服与国服客户端目录保持不变;协议、IL2CPP 类型与配置知识库均由工具可重复生成。
- ✅ 本地离线服务端 —
BlueOath.Server:HTTP 引导 + 游戏登录(TCP 与 UDP)双端点,SQLite 存档,仅监听127.0.0.1 - ✅ 真实传输协议还原 — 11 字节应用层头 + protobuf 信封;TCP over UDP(
KcpCodec+ ARQ 可靠性) - ✅ 客户端注入与重定向 — x86 注入 DLL(xinput 劫持):SDK 登录绕过、DNS/connect/TLS 重定向、UnityTLS 证书信任补丁、引导系统跳过
- ✅ 配置数据库双向转换 — 解密
config_*.db(XOR 0x55)⇄ Excel ⇄ C# 强类型类,一键脚本导出/反导 - ✅ 协议/类型/配置知识库 —
BlueOath.Tools只读分析生成docs/*-catalog,含.proto草案与 wire 证据 - ✅ WPF 图形化启动器 — 公告面板、进程守护、日志控制台、一键完整启动流程
- ✅ Mod 支持(实验) — xLua Mod Loader:Payload 内钩取
lua_pcallk,从游戏 Lua 线程执行Mods/bootstrap.lua,支持内容覆盖与追加(新增章节/装备/舰船)
在开始前,您必须在本项目根目录下放置某游戏的客户端。
请参见:项目结构
请执行以下命令:
dotnet run --project src\BlueOath.Launcher.Wpf\BlueOath.Launcher.Wpf.csproj启动器会执行完整流程:清理残留进程 → TLS 证书生成 → 启动服务器 → 启动代理 → 注入游戏,并实时显示各进程状态与日志。
.\run-game.bat # 全流程:server + proxy + 注入 + 看日志
.\start-client.bat # 调试:仅 proxy + 客户端,连接已运行服务器存档是 --data 目录下的 profiles.db(启动器与 run-game.bat 默认 runtime\jp\profiles.db;启动器设置页改过「数据目录」的以设置为准)。新版服务端首次加载旧存档时可能一次性迁移存档格式(例如心情万分制、基建按时间生产、工人体力按时间回复),迁移后旧版本无法正确读取。部署或升级代码、整合包、启动器之前,先关闭游戏与启动器,再复制一份 profiles.db 备份。
启动器设置页「作弊选项」除「战斗数值」外默认开启,即离线版原来的规则;取消勾选的类别按原游戏规则(心情、基建生产、工人体力、祈愿墙冷却与扫荡按真实时间结算,探索勲章与战斗掉落按配置数量,战斗属性按舰娘详情页)。勾选变化下次「启动游戏」生效:
| 选项 | 服务端开关 | 效果 |
|---|---|---|
| 生产 | --cheat-production |
道具工厂下单即完成,资源楼始终满仓 |
| 体力 | --cheat-strength |
工人体力(メカニカルメダル / 工匠体力)不消耗并保持上限(加速、合成、建造都不扣) |
| 许愿墙 | --cheat-vow |
祈愿后无冷却 |
| 心情 | --cheat-mood |
基建工作、体力加速与前哨驻守不消耗心情(自然、宿舍、浴场回复照常) |
| 探索勋章 | --cheat-medals |
探索每抽固定送 100 个精鋭戦姫勲章。关闭时按原规则:抽到 SSR 送 25 个、SR 送 5 个(config_ship_main.extract_reward),R / N 与装备卡池没有 |
| 掉落加成 | --cheat-drops |
战斗、扫荡、每日副本、宝箱与充值奖励里可堆叠的资源和道具每项额外 +600~2000。关闭时按 config_drop_item 的数量 |
| 扫荡跳过时间 | --cheat-sweep |
扫荡作战开始即完成;前哨不按时间产出、不扣驻守心情,加速不限次数、立即产出。关闭时扫荡按真实时间,前哨按时间产出、每天共 2 次加速 |
| 战斗数值(默认关) | --cheat-battle |
出击时沿用离线版原来的舰娘属性:按等级成长放大约百倍(舰娘远强于详情页)、舰载机过多,每场满耐久。关闭时按详情页的公式(等级、强化、改造、装备与强化等级、好感/誓约加成),耐久带到下一场 |
| 真实消耗资源(默认开) | --real-resource-cost |
探索扣推荐信、商店购买扣价格、出击扣燃料(共闘扣 RP)、技能升级扣教材、经验道具升级扣道具。关闭时这些都免费,技能书与经验道具不消耗 |
| 商店真实库存(默认关) | --real-shop-stock |
商店随机陈列、购买扣库存、定时与手动刷新 |
| 完整战斗属性(实验功能,默认关) | --exp-full-battle-stats |
「战斗数值」关闭时,出击额外下发射程、主炮装填、鱼雷数、火力与突破效果(装填/鱼雷/舰载机增量、Cut-in 等),临时舰带自己的技能。玩家舰的航速等单位未能确认的属性仍不下发 |
「真实消耗资源」「商店真实库存」在设置页的「资源与商店」下,方向与作弊相反:不勾选时资源免费、商店不限量(离线版原来的规则)。「完整战斗属性」在「实验功能」下,尚未充分实机验证。天赋、前哨升级、修理、基地建造/升级等其余养成消耗总是扣。
run-game.bat 与直接运行的服务端使用同样的默认值:脚本用 -NoCheats 关闭全部作弊、-NoCheatSweep 等逐项关闭、-CheatBattle 等逐项开启,-NoRealResourceCost、-RealShopStock、-FullBattleStats 对应其余三项;服务端用 --no-cheats、--cheat-battle=on、--real-resource-cost=off 等(后出现的为准)。切换前建议先备份 profiles.db。
服务器运行时(先点「启动游戏」),启动器「启动游戏」下方的「存档编辑」按钮(或浏览器打开 http://localhost:9780/save)可以查看并直接设置货币与背包道具的数量,0 即删除。名称后的括号里是简体中文名(国服客户端的官方译名;日服独有的道具为翻译)。修改立即写入存档;游戏在线时会同步到客户端,否则下次登录生效,无法撤销,修改前先备份 profiles.db。工人体力随时间回复,不在这里修改;舰娘请在游戏里退役,装备请在游戏里分解。GM 控制台的命令框也可以用 set_currency <profileId> <type> <value> 与 set_item <profileId> <templateId> <count>。
# 本地服务(HTTP 引导 + TCP 游戏登录)
dotnet run --project .\src\BlueOath.Server\BlueOath.Server.csproj -- --port=0 --region=jp --data=.\runtime\jp
# KCP over UDP 登录端点(真实传输)
dotnet run --project .\src\BlueOath.Server\BlueOath.Server.csproj -- --port=0 --kcp-game-login-port=0 --region=jp --data=.\runtime\jp服务只监听 127.0.0.1,启动时输出 JSON 健康信息与实际端口。
dotnet restore .\BlueOath.Local.sln
dotnet build .\BlueOath.Local.sln --no-restore # 必须 0 警告 0 错误
dotnet run --project .\src\BlueOath.Tests\BlueOath.Tests.csproj --no-build
dotnet run --project .\src\BlueOath.Tests\BlueOath.Tests.csproj --no-build -- --integration
# 构建原生注入组件(payload + injector)
powershell -File .\tools\build-native.ps1游戏配置存储于 SQLite config_*.db,jsonbytes 为明文 JSON 逐字节 XOR 0x55(可逆)。
.\export-config.bat [jp|cn] # 导出所有 config_*.db -> <仓库>\excel
.\import-config.bat [jp|cn] # 反导回配置数据库(自动备份)
.\generate-config-cs.bat [jp|cn] # 生成 C# 强类型类 -> src\BlueOath.Server\configs底层命令与完整格式说明见 配置工具链。
dotnet run --project .\src\BlueOath.Tools\BlueOath.Tools.csproj -- --analyze-il2cpp
dotnet run --project .\src\BlueOath.Tools\BlueOath.Tools.csproj -- --analyze-wire
dotnet run --project .\src\BlueOath.Tools\BlueOath.Tools.csproj -- --analyze-protocol
dotnet run --project .\src\BlueOath.Tools\BlueOath.Tools.csproj -- --analyze-config| 文件 | 作用 |
|---|---|
runtime/jp/gm-goods.json |
GM 商店商品(货币/道具/时装) |
runtime/jp/gm-mails.json |
邮件(无限领取的货币邮件) |
runtime/jp/build-pools.json |
建造卡池(按权重抽取) |
tools/baseline.ps1 生成 baseline.json(两服版本、架构与关键文件 SHA-256)。示例 Mod:
Mods/example.mod— 普通明文 Lua 进入客户端运行时Mods/future-chapter.mod— JP 1.4.0 主线新增「未来編」大章节Mods/custom-equipment.mod— 克隆现有装备资源,加入试验装备
xLua Mod Loader 为实验功能,只接受基线中已验证的 xlua.dll SHA-256;未知版本会记录 hook refused 并保持客户端不变。调试日志见 native/bin-x86/BlueOath.Payload.log。
.
├── src/
│ ├── BlueOath.Server/ # 本地服务器(Generic Host 分层架构)
│ ├── BlueOath.Protocol/ # wire 协议:protobuf 信封 / KCP 编解码 / 玩家数据
│ ├── BlueOath.Core/ # 领域实体(PlayerCharacter / Hero / 存档)
│ ├── BlueOath.Storage/ # SQLite 仓储
│ ├── BlueOath.Tools/ # IL2CPP/协议/配置分析工具
│ ├── BlueOath.Launcher/ # 命令行客户端启动器
│ ├── BlueOath.Launcher.Wpf/ # WPF 图形化启动器
│ ├── BlueOath.Mods/ # Mod 清单/依赖/加载顺序发现
│ ├── BlueOath.Publisher/ # 发布打包(launcher-settings、自动更新清单)
│ ├── BlueOath.Tests/ # 单元 + 进程级集成测试
│ └── BlueOath.Bootstrap/ # 引导
├── native/ # x86 注入 Payload / Injector(xinput 劫持)
├── lua_tools/ # 国服/日服反编译 Lua 源码(交叉验证)
├── runtime/ # 本地运行时数据(存档、GM 配置、TLS 材料)
├── tools/ # 辅助脚本(debug-game / build-native / 提取反编译…)
├── docs/ # 文档中心(见下文)
├── blueoath/ 苍蓝誓约/ # 原始日服 / 国服客户端(保持不变)
└── BlueOath.Local.sln
| 系统 | 状态 |
|---|---|
| SDK 登录 / 服务器列表 / 选服 | ✅ |
| 游戏登录(TCP + KCP)与主界面 HomePage | ✅ |
| 3D 看板船娘加载 | ✅ |
| 船坞 / 船娘详情 / 图鉴 | ✅ |
| 商店(GM 免费购买)/ 邮件 / 装备 / 抽卡 / 个人资料 / 舰娘升级 | ✅ |
| 编队 / 战斗进入 / 伤害结算(主炮·鱼雷·空袭·副炮) | ✅ |
| 海域索敌(迷雾 / 巡逻 / 决斗) | 🔄 持续修复中 |
| 公会 / 好友 / 聊天 / 活动等多人与活动系统 | ⬜ 离线占位响应 |
全部文档索引见 docs/README.md,主要入口:
| 分类 | 文档 |
|---|---|
| 总体规划 | 项目概述 · Roadmap · 复盘总结 |
| 开发与发布 | development/(代码规范 · 协议覆盖 · 启动器发布/自动更新) |
| 逆向研究 | battle/(战斗系统 · 攻击 MISS · 自律) · sea/(海域玩法) · transport |
| 生成知识库 | protocol-catalog · config-catalog · il2cpp-catalog · lua-catalog |
- 分阶段目标与完成门槛:docs/roadmap.zh-CN.md
- 版本更新记录:CHANGELOG.md
本项目仅用于个人学习与研究目的。游戏及其原始资产(客户端、配置、美术与音频等)版权归原作者所有;本仓库不包含官方服务器代码。请勿将本项目用于任何商业用途。

