Godot RE Tools:如何从编译后的 PCK 文件里完整恢复你的 Godot 项目
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
PCK(Godot 的资源打包格式)文件还在,原始工程目录却找不到了。用 Godot RE Tools,你可以把包里的编译脚本反编译出来,再把整个 Godot 项目还原成可编辑、可运行的样子。
一张表看懂:它到底能做什么
手里只有编译产物、却想要一个能打开的工程时,中间这些环节它都包了。
| 功能模块 | 一句话说明 | 典型使用场景 |
|---|---|---|
| PCK/APK/EXE 解析 | 把打包产物里的全部文件和资源分离出来 | 手上只有游戏发布包 |
| GDScript 批量反编译 | 把 .gdc 字节码(编译后的脚本格式)转回可读的 .gd 源码 | 找回丢失的脚本源码 |
| 资源批量转换 | 把二进制资源(.ctex、.oggvorbisstr 等)转回原始格式 | 让纹理和音频在编辑器里可用 |
| 项目重构 | 重建 project.godot、插件配置与导入元数据 | 还原的项目直接进编辑器 |
整条链路是动词链:解析包体得到文件,反编译字节码得到源码,转换资源得到可用素材,重构工程得到能打开的项目。
实战上手:从装好到跑通
拿三个真实场景过一遍,跟着做就能跑通。
快速恢复单个项目(最常用路径)
手上只有一个 PCK、APK 或 EXE,想直接拿到可编辑的工程,就走这条路。
图形界面里选 RE Tools → Recover project…,或者把文件直接拖进窗口;命令行等价写法:
gdre_tools --headless --recover=game.pck跑完会生成输出目录(默认以文件名命名)。工程加密时再加--key=<64位十六进制密钥>。
批量反编译与内容提取
不想做完整恢复,只想拿部分脚本,或者先看看包里有什么时用。
gdre_tools --headless --decompile="*.gdc" --bytecode=4.3.0只想解包用--extract=game.pck;只看清单用--list-files=game.pck,不会动到任何资源。
自定义配置:密钥、版本与过滤规则
PCK 加密、或者项目用的特殊引擎版本导致反编译对不上号时,用这组参数。
--key=<64位十六进制>指定解密密钥;--force-bytecode-version=<版本号或提交哈希>强制指定字节码版本;--include/--exclude配合 glob(通配模式)规则控制哪些文件参与恢复,--scripts-only则只处理脚本。
⚠️ 从源码编译的话,要把仓库克隆进 Godot 的 modules 目录(git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp),并装好 rustup 和 .NET 10 SDK;恢复出来的项目要用与原游戏相同版本的 Godot 编辑器打开,日志里会写明检测到的版本。
深入一层:版本兼容是怎么做的
为什么一个工具能反编译从 2.x 到 4.x 的项目?
关键在于字节码层的版本适配:内置了 2.1 到 4.x 各版本的反编译定义,反编译器按检测到的版本选用对应操作码表,检测错了就用--force-bytecode-version覆盖。
gdre_tools --headless --list-bytecode-versions- 项目用魔改引擎构建时,可用
--dump-bytecode-versions=<目录>把全部定义导出为 JSON,改好后再用--load-custom-bytecode=<JSON文件>载入; - 游戏没用标准加密方案时,写一个继承
CustomDecryptor的 GDScript 脚本,再用--custom-decryption-script指定,完整流程见 docs/custom_decryptors.md; - 翻译恢复时用
--translation-hint提供密钥映射文件(.csv、.txt、.po、.mo),恢复出的翻译文本会更好认。
用之前必看:这些边界要知道
动手之前,先说清楚这个工具能做什么、不能做什么。
✅ 完成后先看恢复报告:反编译了哪些脚本、转换了多少资源、建议用哪个 Godot 版本打开工程,都写在里面。
⚠️ 不是所有资源都能转换:2.x 模型(dae、fbx、glb 等)和 GDNative/GDExtension 脚本目前不支持,对应的文件恢复后仍保持二进制形态。
✅ 恢复出的工程要用与原游戏相同版本的 Godot 编辑器打开;如果脚本大量报错,拿原游戏的二进制当导出模板重新导出再试。
✅ 只对你有合法权利的项目或学习研究用途使用它,分发的解密脚本里也别写死真实的密钥。
编译产物进,可编辑工程出,这就是 Godot RE Tools 给你的最短路径。先拿一个小的测试 PCK 跑一遍,用恢复报告里的数字检验结果。工具归工具,恢复和研究的对象记得是你能碰的项目。
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考