Cocos Creator 逆向工程工具,用于从编译后的 Cocos Creator 游戏中提取和重建源代码与资源。
如果您觉得这个项目对您有帮助,请给我们一个 Star ⭐️,这是对我们最大的鼓励!
- 解析和重建 Cocos Creator 项目结构
- 提取并转换游戏脚本和资源文件
- 处理 UUID 和元数据信息
- 支持场景、预制体、动画等资源的提取
- 生成符合 Cocos Creator 格式要求的项目文件
- 支持 Cocos Creator 2.3.x 和 2.4.x 版本自动检测
- 文件结构:
src/settings.js,src/project.js,res/目录 - 自动检测并使用相应的解析逻辑
- 文件结构:支持多种构建输出格式
- 资源路径:
assets/或res/目录 - 配置文件:
main.js,settings.js,project.js等 - 使用
--version-hint 2.4.x强制指定版本
# 全局安装
npm install -g cc-reverse
# 使用
cc-reverse --path <源项目路径># 克隆仓库
git clone https://github.com/Crain99/cc-reverse.git
cd cc-reverse
# 安装依赖
npm install
# 使用
npm start -- --path <源项目路径>选项:
-V, --version 显示版本号
-p, --path <path> 源项目路径
-o, --output <path> 输出路径 (默认: "./output")
-v, --verbose 显示详细日志
-s, --silent 静默模式,不显示进度
--version-hint <version> 提示Cocos Creator版本 (2.3.x|2.4.x)
-h, --help 显示帮助信息
# 基本用法
cc-reverse --path ./games/sample-game
# 指定输出目录
cc-reverse --path ./games/sample-game --output ./extracted-game
# 显示详细日志
cc-reverse --path ./games/sample-game --verbose
# 静默模式
cc-reverse --path ./games/sample-game --silent
# 指定Cocos Creator版本(当自动检测失败时)
cc-reverse --path ./games/sample-game --version-hint 2.4.x
# 处理2.4.x版本项目
cc-reverse --path ./games/cocos24x-game --version-hint 2.4.x --verbose您可以在项目根目录创建 cc-reverse.config.js 配置文件来自定义工具行为:
module.exports = {
// 输出配置
output: {
createMeta: true,
prettify: true,
includeComments: true
},
// 代码生成配置
codeGen: {
language: "typescript", // "typescript" 或 "javascript"
moduleType: "commonjs", // "commonjs", "esmodule", 或 "amd"
indentSize: 2,
indent: "space" // "space" 或 "tab"
},
// 资源处理配置
assets: {
extractTextures: true,
extractAudio: true,
extractAnimations: true,
optimizeSprites: false
}
}- 此工具主要用于学习和研究目的
- 无法还原经过加密的代码
- 建议先在简单的开源项目上测试(例如"合成大西瓜")
- 请遵守相关法律法规和软件许可协议
cc-reverse/
├── src/ # 源代码目录
│ ├── core/ # 核心功能模块
│ │ ├── codeAnalyzer.js # 代码分析器
│ │ ├── converters.js # 格式转换器
│ │ ├── projectGenerator.js # 项目生成器
│ │ ├── resourceProcessor.js # 资源处理器
│ │ └── reverseEngine.js # 逆向工程引擎
│ ├── utils/ # 工具函数
│ │ ├── fileManager.js # 文件管理工具
│ │ ├── logger.js # 日志工具
│ │ └── uuidUtils.js # UUID 工具
│ ├── config/ # 配置文件
│ │ └── configLoader.js # 配置加载器
│ └── index.js # 主入口文件
├── bin/ # 命令行工具
│ └── cc-reverse.js # 命令行入口
├── cc-reverse.config.js # 示例配置文件
├── package.json # 项目依赖配置
└── README.md # 项目说明文档
- @babel/* - JavaScript 解析和生成工具
- commander - 命令行解析
- chalk - 终端颜色支持
- ora - 终端加载动画
- progress - 进度条
- 其他工具库 (async, uuid, string-random 等)
# 开发模式运行
npm run dev
# 代码检查
npm run lint
# 运行测试
npm run test
# 构建
npm run build如果您觉得这个项目对您有所帮助,请考虑给我们一个 Star ⭐️!您的支持是我们持续改进的动力。
MIT
欢迎提交问题报告和改进建议!