Releases: CLARE-XHL/Chronos-Seal
Release list
Chronos Seal V2.0
Chronos Seal V2.0 — 彻底重构,面向所有 RM 开发者
⚠️ 版本状态:这是当前最新稳定版本,推荐所有新项目使用。
适用场景:定价 ¥12~¥60 的独立游戏,保护首发销售窗口期。无论你的游戏是否上架 Steam,均可使用。
源码迁移说明
V2.0 的核心源码(decryptor.cc、binding.gyp、encrypt.js、build.yml)已迁移至专用模板仓库 Chronos-Builder-Template。该仓库是云端编译的入口,包含所有编译相关的文件和 GitHub Actions 配置。如需查看或修改源码,请前往该仓库的 README 了解详情。
核心理念
- 经济学博弈:让破解成本远超游戏售价,保护独立游戏首发的“黄金两周”
- 版本迭代即“时间炸弹”:利用版本差压缩盗版传播窗口
- 零信任、零知识:工具作者不接触、不存储任何用户密钥
- 完全可逆:只加密发行包,工程文件零修改
新增
- 云端编译(GitHub Actions):用户 Fork 模板仓库 → 填写参数 → 自动编译 → 下载成品,无需本地编译环境
- 本地扫描器(ChronosScan.bat):纯原生 Windows 批处理,双击扫描所有地图,自动生成检查点植入说明书
- 作者专属密钥文件(author_secret.txt):云端编译完成后自动生成,包含 Salt、IV、检查点白名单,是游戏加密的唯一凭证
- 备份机制:建议在替换加密文件前备份原始
index.html和system.json,方便调试和回退
移除
- 彻底移除 Steam SDK 依赖:不再需要 Steam 账号、Steamworks SDK、Steam API
- 彻底移除本地编译环境:不再需要安装 Node.js、Python、MSVC、OpenSSL
- 移除本地编译脚本:
build.bat和encrypt.bat不再需要 - 移除机器绑定和双存储:不再需要硬件指纹、注册表、NTFS ADS
- 移除 Steam 相关错误码:
ERR_ID_MISMATCH(20)、ERR_TIME_TAMPER(31)、ERR_NO_STEAM(50)已移除
变更
- 工作流程精简:
- 旧:放置文件 → 修改 binding.gyp → 运行 build.bat → 部署 → 运行 encrypt.bat
- 新:运行 ChronosScan.bat → 植入检查点 → 部署 → 云端编译 → 替换文件
- 检查点生成方式:
- 旧:在 build.bat 中自动生成并写入 config.h
- 新:ChronosScan.bat 生成 config.h(仅白名单),密钥由云端编译时动态生成
- auth_manager.js:精简路径探测,移除 Steam 相关逻辑,版本号更新为 2.0
- index.html:精简错误码,更新版本号,保留启动劫持和 StorageManager 拦截
- binding.gyp:移除 Steam SDK 路径和注释,只保留 OpenSSL 依赖
安全增强
- 零知识设计:Salt 和 IV 只在用户自己的 GitHub Actions 中生成,作者和平台无法接触
- 私有仓库强制要求:用户必须 Fork 为私有仓库,防止日志泄露
- 用完即焚:编译完成后删除 Fork 仓库,日志同步销毁
升级指南(从 V1.x 升级)
- 重新运行
ChronosScan.bat生成新的config.h和checkpoints_guide.txt - 按新的检查点说明在游戏中重新植入检查点
- 将新的
config.h和system.json上传到 Fork 的模板仓库 - 运行 GitHub Actions,输入新的版本号
- 下载新的
decryptor.node和system.json.enc替换发行包中的旧文件 - 已发布的 V1.x 游戏不受影响,可继续正常运行
致谢
- Project 1 的 fux2 —— 指出 V1.x 版本的核心误区,促使 V2.0 彻底重构
Chronos Seal V1.2.1
Chronos Seal V1.2.1 —— 补丁发布
⚠️ 版本状态:建议所有使用 V1.2 的开发者升级至此版本。
本次更新:修复了 V1.2 用户反馈的两个边界场景问题,提升稳定性和用户体验。
修复
-
encrypt.bat 脚本目录自动创建
修复用户将encrypt.bat复制到发行包目录后直接运行时,因scripts\临时目录不存在导致加密流程中断的问题。脚本现在会自动创建所需目录。 -
首次激活原子性加固
修复极端情况下(磁盘空间不足、权限不足、进程意外终止)system.json.enc被用户密钥覆写但auth.key未成功写入,导致文件无法恢复的问题。
现在采用“先备份 → 写入 auth.key → 确认成功后再覆写加密文件 → 失败时自动回滚”的原子性流程。
新增
- build.bat 支持自定义截止日期
运行build.bat时新增HARD_EXPIRE日期输入,开发者可自定义时间炸弹的截止日期(默认 2027-01-01),无需手动修改config.h。
优化
- encrypt.bat 保留配置备份
加密完成后不再强制删除encrypt_config.json,改为保留在当前目录,方便后续游戏更新时重新加密(如需完全清除可手动删除)。
升级指南(从 V1.2 升级)
- 替换
encrypt.bat文件 - 替换
decryptor.cc源文件 - 重新运行
build.bat编译生成新的decryptor.node - 已激活的用户无需额外操作,
auth.key与 V1.2 完全兼容
Chronos Seal V1.2
Chronos Seal V1.2 — 预加密 + 一机一密 + 自动化构建
⚠️ 版本状态:本版本已解决 V1.0 的明文裸奔问题,可投入生产环境使用 但仍建议使用最新版或已明确的稳定版。
适用场景:定价 ¥12~¥60 的独立游戏,保护首发销售窗口期。
核心改进
- 🔒 发行包预加密:打包前加密 system.json,发行包内无明文,彻底堵死解包即玩
- 🔑 一机一密:每位玩家首次启动后,system.json 用其专属密钥重新加密,破解无法泛化
- 🤖 自动化构建:build.bat 一键完成扫描地图、生成检查点、编译 .node
- 🧹 自动加密:encrypt.bat 部署后自动加密 system.json,校验通过后删除明文
新增功能
打包前自动化构建工具(build.bat)
- 扫描 data/ 目录下所有地图文件
- 自动生成检查点列表(7-12 个)
- 生成 config.h(包含白名单 + 密钥)
- 一键编译 decryptor.node
部署后加密工具(encrypt.bat)
- 读取 encrypt_config.json 配置
- 加密 www/data/system.json → system.json.enc
- 校验加密文件是否成功生成
- 自动删除明文 system.json 和 encrypt_config.json(用完即焚)
启动劫持(index.html)
- 在 RPG Maker 引擎加载前完成解密
- 劫持 StorageManager.loadFromFile,返回内存中的明文
- 明文用完即焚(全局存活时间不超过几毫秒)
优化项
- StorageManager.loadFromFile 劫持,明文用完即焚
- encrypt_config.json 加密完成后自动删除
- 检查点白名单由 build.bat 自动生成,无需手动维护
- 无表格排版,GitHub 显示友好
升级指南(从 V1.1 升级)
- 替换 decryptor.cc 为 V1.2 版本
- 替换 auth_manager.js 为 V1.2 版本
- 新增 config.h(由 build.bat 自动生成)
- 新增 build.bat 和 encrypt.bat
- 替换 index.html 为 V1.2 版本
- 运行 build.bat → 部署 → 运行 encrypt.bat
已知限制
- 仅支持 Windows 平台(NW.js 环境)
- 需要 Steamworks SDK 编译
- 需要 Node.js 环境构建
Chronos Seal V1.1
Chronos Seal V1.1 — ADS 双存储防篡改增强
本次更新重点强化了时间存储的防篡改能力,引入 NTFS 备用数据流(ADS)作为第三隐性存储,并移除了独立的 PDF 白皮书,所有文档全部整合进 README。
V1.1 更新说明:本版本已移除独立的 PDF 白皮书,所有设计原理、架构、工作流、部署指南等均完整整合于 README,方便一站式阅读。
新增
- NTFS 备用数据流(ADS):时间哈希同步写入
auth.key:timestamp,作为第三隐性存储介质 - 双存储自修复:删注册表或删 ADS 均可由另一方自动补回
增强
- 严格双源交叉校验:
verify_time升级为注册表 + ADS 双源校验,任一存储非空且错误即触发ERR_TIME_TAMPER(31),空值放过以兼容意外清理
修复
- 首次激活时序:调整
GenerateFirstTimeAuth执行顺序,先写auth.key宿主文件再写入 ADS,确保首次激活时 ADS 流正确挂载
优化
- 双写一致性:
save_current_time_to_registry内部同时处理注册表与 ADS 写入 - 示例代码:完善
启动验证.txt和检查点.txt,增加ERR_NO_RES(40)错误码处理,补充 C++ 自动惩罚的注释说明 - auth_manager.js:版本号同步至 1.1,增加
.node加载路径,心跳间隔从 5 秒调整为 3 秒
文档
- 移除独立的 PDF 白皮书,所有设计原理、架构、工作流、部署指南等全部整合进 README
升级指南
从 V1.0 升级到 V1.1:
- 替换
decryptor.cc为 V1.1 版本 - 替换
auth_manager.js为 V1.1 版本 - 重新编译:
node-gyp configure && node-gyp build --release - 已激活的用户无需额外操作,
save_current_time_to_registry会在下次启动时自动补写 ADS
已知局限性
本方案不追求对抗顶级逆向工程师,主要目标为提高破解成本、保护首发销售窗口期。建议配合 VMProtect / Themida 对 .node 模块进行虚拟化加壳。
致谢
- @JiuGeGe520 —— 反馈注册表防篡改漏洞
Chronos Seal V1.0
Chronos Seal V1.0 — 初始稳定版
Chronos Seal 是一套专为 RPG Maker MV / MZ(NW.js)设计的无服务器运行时完整性保护方案。通过 C++ Native 层实现身份锚定、时间炸弹、行为检查点与看门狗守护,将批量盗版与简易破解的成本提升至远超游戏本身价值。
“时序为封印,行为作密钥,岁月守护原创。”
核心特性
- 原生层信任根:核心解密逻辑下沉至 C++ 编译二进制(.node),JS 层零敏感密钥,杜绝 F12 控制台捞密钥
- Steam 身份锚定:通过 Steam SDK 读取 UID,HMAC-SHA256 签名绑定,多采样抗 Hook
- 时间自毁机制:硬编码截止时间戳 + 注册表防回拨,旧版泄露包自动失效
- 资源加密锁:AES-256-CBC 加密 system.json,随机 IV,C++ 内存解密
- 行为检查点矩阵:单向 HMAC 哈希链,7~12 个检查点与游戏逻辑深度耦合
- 看门狗守护线程:独立系统级线程,10 秒超时,连续 2 次无心跳强制退出
- 安全落盘机制:覆写原文件为全 0 并校验,确认无误后删除
架构概览
系统分为三层,层层递进,密钥完全隔离于 JavaScript 层之外:
- L1:原生信任根(decryptor.node)— 持有硬编码密钥 & 时间阈值
- L2:JS 胶水层(auth_manager.js)— 暴露 API,不含任何敏感密钥
- L3:行为验证层(RM 公共事件 & 脚本)— 散落检查点调用
开发者部署
详见 README.md 中的完整部署指南。
已知局限性
本方案不追求对抗顶级逆向工程师,主要目标为:
- 提高批量盗版与一键破解补丁的开发传播成本
- 压缩盗版版本的可用生命周期
- 保障开发者首发销售窗口期
Chronos Seal V1.1 哈希固定
这个 Chronos Seal V1.1 固定哈希 里面的内容和 V1.1 正式发行版完全一样,没有任何区别。
它存在的唯一目的:固定哈希、存证用。
青鸾印平台不支持直接固定 .cc / .gyp 文件,所以我把核心源码单独打包,用压缩包的哈希值作为证据锚点,完成版权存证流程。
如果你是用户,请直接去下载最新发行版或已明确的稳定版(V1.1有漏洞),别下这个。