GDRE Tools 从 0 到 1:Godot 项目逆向恢复与 GDScript 反编译完整指南
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
源码丢了只剩编译产物?别急,GDRE Tools 就是干这个的:它能把 Godot 打包出来的 PCK、APK 甚至 EXE 还原成可以直接在编辑器里打开的完整工程——GDScript 脚本反编译回.gd、资源转回原始导入格式、project.godot也一并重建。工具覆盖 Godot 2.x / 3.x / 4.x 三代项目,加密文件也能处理。读完这篇,你能用一条命令把游戏 PCK 变回可编辑的工程。
什么情况下你会需要它
你遇到过这些情况吗?
- 项目源码误删或没存档,手上只剩导出的
.pck文件,想尽量把 GDScript 脚本救回来 - 想拆解一款 Godot 游戏的实现思路来学习,但只能看到编译后的字节码(
.gdc) - 游戏用了加密 PCK,常规解包工具打不开,得靠带
--key参数的专业工具
这里有个关键区别:普通解包只给你一堆二进制文件,而 GDRE Tools 会把资源转回编辑器能直接打开的格式,重建依赖关系和工程配置。
5 分钟跑起来:安装编译与第一次恢复
环境依赖一行带过:Python 3.8+、SCons,源码编译还需要rustup和.NET 10 SDK。
方式一:源码集成到 Godot 编译
- 把仓库 clone 到 Godot 源码的
modules目录下,目录名必须是gdsdecomp(注意:需要配合官方要求的 Godot fork 的gdre-wb-f964fa714f5分支):
git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp modules/gdsdecomp- 在 Godot 根目录编译(Linux 示例):
scons platform=linuxbsd target=template_debug- 用 standalone 模式跑第一次恢复,把 PCK 丢给它:
bin/godot.linuxbsd.template_debug.x86_64.llvm --headless \ --path=modules/gdsdecomp/standalone \ --recover=/path/to/game.pck✅ 跑通的标志:输出目录<NAME>_extracted(或你--output指定的目录)里出现完整工程结构,恢复日志末尾会打印检测到的 Godot 引擎版本——用同版本的 Godot 打开这个目录就能继续编辑了。
方式二:GUI 用法。集成模块后的编辑器里,选 "RE Tools" → "Recover project...",也可以直接把 PCK/EXE 拖进窗口。Windows 用户还可以直接scoop install gdsdecomp装 release 版。
它到底怎么干活的:核心模块速览
| 模块 | 干什么 | 关键能力 |
|---|---|---|
| 文件解析器 | 解包 PCK/APK/EXE 并解密 | 标准 AES 加密 + 自定义解密脚本 |
| 字节码反编译器 | .gdc转回.gd源码 | 内置 2.x–4.x 全量字节码定义 |
| 资源转换器 | 文本/二进制资源互转 | --txt-to-bin/--bin-to-txt |
| PCK 工具 | 创建与修补 PCK | --pck-create/--pck-patch |
| 项目重构器 | 还原工程文件与导入资源 | 重建project.godot与插件配置 |
整体流程就是:解析打包文件 → 提取资源 → 反编译脚本 → 重建工程。版本适配基本不用你操心,工具会自己识别字节码版本;识别错了用--force-bytecode-version=4.3.0强制指定,遇到特殊版本还能--load-custom-bytecode加载自定义 JSON,各版本定义演进可以看 BYTECODE_HISTORY.md。
进阶技巧:选择性恢复与 PCK 操作
如果你需要更精细的控制,展开下面查看进阶用法。
只恢复脚本 + glob 过滤
--scripts-only只处理脚本,配合--include缩小范围(glob 以res://为根,**表示递归):
gdre_tools --headless --recover=game.pck \ --scripts-only --include="res://scripts/**/*.gdc"自定义字节码与加密处理
非标准字节码版本传--load-custom-bytecode=custom.json;加密项目传 64 位十六进制密钥--key=...。游戏用了非标准加密方案的,参考 自定义解密器指南 写一个CustomDecryptor脚本。
创建和修补 PCK
gdre_tools --headless --pck-create=/path/to/dir \ --pck-version=2 --pck-engine-version=4.3.0 --output=game.pck--pck-patch可以把改好的文件打回原 PCK,做 mod 时很实用。
注意事项与合规提醒
⚠️ 只在自己拥有的项目或明确允许的研究场景下使用,别用它绕过商业游戏的保护去牟利。
用游戏原始编译版本的 Godot 打开恢复出的工程(恢复日志会写明检测到的版本),跨大版本打开容易出兼容问题。
已知局限:2.x 的模型文件(
dae、fbx、glb)和 GDNative/GDExtension 脚本暂不支持转换,恢复后可能需要手动补。
GDRE Tools 把"编译产物 → 可编辑工程"这条最难走的路打通了,源码丢失或想拆解别人架构的开发者都值得先试一把。找个 PCK,把上面的命令跑一遍,看看能救回多少东西。
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考