ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

GDRE Tools 实战指南:从 PCK 到可运行 Godot 项目的完整恢复

GDRE Tools 实战指南:从 PCK 到可运行 Godot 项目的完整恢复

GDRE Tools 实战指南:从 PCK 到可运行 Godot 项目的完整恢复

【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp

GDRE Tools 是一款 Godot 逆向工程工具,能完成 GDScript 反编译和 PCK 资源恢复,把编译好的 PCK、APK 或 EXE 还原成可直接用编辑器打开的项目。它的最大价值:源码丢了,项目照样能找回来。

第一次上手:三步完成首个恢复

不需要先啃完源码。想编译自己构建,把仓库克隆到 Godot 的modules子目录并命名为gdsdecomp,再按 README.md 重新构建引擎即可;一般场景直接下载 release 版本就能用。

🔧第一步:拿到工具

git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp

🔧第二步:发起恢复。GUI 版在菜单栏选 "RE Tools" → "Recover project..." 选择目标文件,也可以直接把 PCK 或 EXE 拖进窗口。命令行则运行 standalone 入口:

bin/godot.linuxbsd.template_debug.x86_64.llvm --headless \ --path=modules/gdsdecomp/standalone --recover=game.pck

🔧第三步:核对结果。输出目录里是可恢复的项目,恢复报告会写明该用哪个 Godot 版本打开、反编译了几个脚本、转换了几个资源。建议用与原游戏相同的引擎版本打开项目,日志里会标注检测到的版本。

核心能力拆解

GDScript 反编译:输入 .gdc,输出 .gd

输入是 PCK 里的.gdc字节码,输出是可读的.gd源码:常量、函数结构、变量声明都能还原,PCK 浏览器里还能并排对照原始与反编译代码。原理是按引擎版本匹配字节码指令定义——工具内置了 2.1 到 4.5 的完整字节码定义,自动识别 PCK 里的版本再解码,定义文件在 bytecode/ 目录。

资源提取与格式转换:输入打包文件,输出分类资源

输入不限于 PCK,APK 和内嵌资源的可执行文件同样支持。输出按用途分成四类,转换关系如下:

输入输出
.pck / .apk / 内嵌 EXE解包后的全部项目文件
二进制 .res 场景或资源文本格式 .tres
已导入的纹理、字体、音频原始格式(.png、.fnt、.wav 等)
.gdc 字节码反编译后的 .gd 源码

多版本适配:兼容哪些 Godot 版本

反编译支持 Godot 2.x、3.x、4.x 三代项目。输入可以是 commit hash(如f3f05dc)或版本号(如4.3.0),对应输出该版本的正确解码结果:--list-bytecode-versions列出全部内置版本,--force-bytecode-version强制指定,--load-custom-bytecode=<JSON>加载自定义定义,应对定制引擎。

项目重构:输入提取文件,输出可打开的项目目录

完整恢复不止于抽文件:它还原project.godot、重建插件配置、把二进制资源转回文本格式,让项目在对应版本编辑器里打开时尽量减少导入错误。恢复报告里每一项转换都有统计,没转成功的文件会逐条列出原因。

进阶用法(选读)

命令行参数、自定义字节码、过滤与批量处理

统一形式为gdre_tools --headless <主命令> [选项]。常用主命令:--recover(完整恢复)、--extract(仅提取)、--decompile(单个 GDC 反编译,可重复、支持 glob)、--pck-create(创建 PCK)、--pck-patch(用指定文件修补 PCK)、--bin-to-txt/--txt-to-bin(格式互转)。

关键选项:

  • --key=<64位hex>:加密 PCK 的密钥
  • --scripts-only:只提取脚本
  • --include/--exclude:glob 过滤,需以res://或user://为根,**表示递归
  • --ignore-checksum-errors:忽略 MD5 校验错误

只恢复某个目录下的脚本,可组合过滤与密钥参数:

gdre_tools --headless --recover=game.pck \ --include="res://**/*.gdc" --key=<64位hex>

自定义字节码定义与 PCK 创建:

gdre_tools --headless --dump-bytecode-versions=./defs gdre_tools --headless --pck-create=project_dir \ --pck-version=2 --pck-engine-version=4.3.0

加密文件处理与自定义解密器的实现方式,见 docs/custom_decryptors.md。

适用场景与合规边界

个人项目源码找回:自己早期导出的游戏,原目录丢了但还留着 PCK 或 APK。跑一次完整恢复,.gd源码、导入资源源文件和项目配置都能回来,用同版本引擎接着开发。

教学与分析:反编译一个开源或自己编译的示例游戏,看物理控制器、资源组织是怎么写的。PCK 浏览器的对照视图适合边讲边演示,学生能直观看到字节码与源码的对应关系。

⚠️ 合规边界:该工具只应用于个人项目恢复、开源示例学习和经授权的逆向研究。反编译商业游戏并传播其中的代码或资源构成侵权,使用前请确认你对目标文件拥有合法权利,尊重原作者的知识产权。

恢复不等于无损还原,报告里标出的未转换项就是接下来的工作清单——照着提示补齐即可。

【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进