☰
GDSDecomp实战教程:如何从PCK提取资源、反编译脚本并恢复Godot项目
2026/10/18 1:29:01 网站建设 项目流程

GDSDecomp实战教程:如何从PCK提取资源、反编译脚本并恢复Godot项目

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

GDSDecomp(Godot RE Tools)是一套面向 Godot 的逆向工程工具集:它可以直接从 PCK、APK、EXE 文件里把游戏资源完整提取出来,把 .gdc 字节码批量反编译回可读的 .gd 脚本,还能重建包含 project.godot 和插件配置在内的完整项目。支持 Godot 4.x、3.x 和 2.x 三代项目,命令行和图形界面都能用。

这套工具适合谁

  • 想学优秀作品的独立开发者:把公开游戏的场景、脚本翻出来读一遍,比看文档直观得多。
  • 丢过源码的开发者:发行版里只剩 .gdc 和二进制资源,靠它可以找回可编辑的工程文件。
  • 本地化和 Mod 爱好者:提取资源、改翻译、改数值,再打回 PCK 就能重新发布(前提是你有权这么做)。

GUI 用户从 "RE Tools" 菜单选 "Recover project..." 就能走完整流程;不熟悉界面的直接用命令行更快。

三分钟跑起来:GDSDecomp安装与验证

按难度从低到高,三种方式任选其一。

1. 预编译版本(最省事)

去项目发布页下载对应平台的压缩包,解压即用。装完跑一条命令确认版本:

gdre_tools --version

2. Scoop 包管理器(Windows)

scoop bucket add games; scoop install gdsdecomp

3. 源码编译(开发者向)

把它作为模块塞进 Godot 源码的 modules 目录再编译:

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

之后按 Godot 官方文档重新编译引擎即可,环境额外需要 Rust 和 .NET SDK。编译出的独立版用法是bin/godot.*.template_debug --headless --path=modules/gdsdecomp/standalone --recover=<pck/apk/exe>。

核心命令速查:提取、反编译、恢复、打包

四条高频命令,覆盖 90% 的使用场景,全部以--headless无界面模式运行:

功能命令说明
提取 PCK/APK/EXEgdre_tools --headless --extract=game.pck --output=extracted把包内所有文件按原始目录结构解出来
批量反编译 .gdcgdre_tools --headless --decompile="res://**/*.gdc" --bytecode=4.3.0glob 圈定一批字节码文件,转回 .gd 文本
完整项目恢复gdre_tools --headless --recover=game.pck --output=recovered一步到位:反编译脚本 + 还原资源 + 重建工程配置
从目录创建 PCKgdre_tools --headless --pck-create=assets --pck-version=2 --pck-engine-version=4.3.0 --output=out.pck把改好的资源目录重新打成资源包

上图是 GUI 形态:左侧 PCK Explorer 浏览包内文件,右侧弹窗就是反编译结果,可以直接做改前/改后对照。

完整恢复实战:从提取到回打包的四步走

场景:拿一份 Godot 4.3 打出来的game.pck(PCK 版本 1),目标是改一个脚本后重新出包。

第 1 步,提取包内容

gdre_tools --headless --extract=game.pck --output=work

所有文件原样落到work/目录,先拿到手再动手。

第 2 步,反编译字节码脚本

gdre_tools --headless --decompile="work/**/*.gdc" --bytecode=4.3.0 --output=gd_out

--bytecode指定引擎版本,保证指令集解码正确;产物是可读的 .gd 文件,直接编辑。

第 3 步,校验结果

gdre_tools --headless --list-files=game.pck

列出包内文件清单,和work/里的文件逐一比对,数量、路径一致才算提取完整;再抽查几个 .gd 文件确认没有解码乱码。

如果走的是--recover一键恢复,结束后会弹出这份恢复报告:反编译成功数、失败数一目了然,还会明确提示"用哪个版本的 Godot 编辑器打开这个项目"——按提示选版本,能省掉大量无意义的报错。

第 4 步,回打包

改完脚本、资源后,把修改好的目录重新打回 PCK:

gdre_tools --headless --pck-create=work --pck-version=1 --pck-engine-version=4.3.0 --output=game_mod.pck

--pck-version要尽量和原包保持一致,--embed参数还可以把新 PCK 直接塞回 EXE 里。

卡住了怎么办:高频问题排查

现象:反编译出来是乱码或直接报错原因:字节码版本和实际引擎版本不匹配。解决:先用gdre_tools --headless --list-bytecode-versions看支持范围,再用--force-bytecode-version=4.3.0(或提交哈希)强制指定版本。

现象:提取时报 MD5 checksum 错误原因:项目开了加密,或者文件本身被修补过导致校验值对不上。解决:加密包用--key=<64位十六进制密钥>提供解密密钥;确认是校验值问题则加--ignore-checksum-errors跳过。

现象:恢复出来的工程一打开就一堆报错原因:编辑器版本和游戏编译时的版本不一致。解决:看恢复日志里提示的编辑器版本,换对应版本的 Godot 打开;仍不行就用原游戏的可执行文件作为导出模板。

现象:个别资源提示"未转换"原因:已知限制,2.x 的模型格式(dae、fbx、glb 等)和 GDNative/GDExtension 脚本目前还没有转换支持,详见 compat/ 里的旧格式兼容层覆盖情况。

进阶调优与兼容性

只处理一部分文件:--include和--exclude接收 glob 模式,可重复传。模式建议以res://开头,**表示跨目录递归,例如:

gdre_tools --headless --recover=game.pck --include="res://scripts/**/*.gdc" --exclude="res://addons/**/*"

只有脚本要处理的话,还有个偷懒参数--scripts-only。

自定义字节码定义:遇到官方未收录的修改版引擎时,可以用--load-custom-bytecode=defs.json加载自己导出的定义文件;先用--dump-bytecode-versions=<DIR>把内置定义导出来做模板。字节码定义本身存放在 bytecode/ 目录,覆盖 50 多个 Godot 版本。

版本支持对照:

Godot 版本脚本反编译资源恢复备注
4.x完整完整主力支持对象
3.x完整部分引擎 3.x 编译支持已移除,但反编译保留
2.x完整部分2.x 模型格式暂不支持

各类资源的转换逻辑分布在 exporters/ 目录,每加一种格式对应一个导出器,想确认某类资源能不能还原,翻一下这个目录最直观。


最后提醒:逆向工具只对你有版权或已获授权的项目使用,处理前备份原始文件,并尊重原作者的劳动成果。把资源提取、脚本反编译到项目重建整条链路压进一条命令行,这正是 GDSDecomp 最省心的地方。

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

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

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询