gdsdecomp 从零到跑通:Godot PCK 反编译与资源恢复

📅 发布时间:2026/10/18 3:59:04
gdsdecomp 从零到跑通:Godot PCK 反编译与资源恢复
gdsdecomp 从零到跑通Godot PCK 反编译与资源恢复【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecompgdsdecomp 是一套 Godot 逆向工程工具它能从 PCK、APK、嵌入式 EXE 里提取场景、纹理、音频等资源并把 GDScript 字节码.gdc反编译回可读的 .gd 源码支持 Godot 4.x、3.x 和 2.x 三种代际的项目。下面按拉代码 → 装好 → 跑通三个任务的顺序走一遍。一、先想清楚你要拿它做什么三个最常见的使用场景先对号入座你的处境gdsdecomp 帮你做什么源码丢了手里只剩发布包PCK/APK/EXE一键 Full Recovery拆包、反编译全部脚本、还原 project.godot 和导入资源想在反编译出来的项目上加功能批量把 .gdc 字节码转成 .gd 文本直接进工程改代码想拆解一个商用游戏的实现逻辑提取场景与脚本研究节点结构和 GDScript 写法工具支持完整项目恢复、PCK 解压与重建、GDScript 批量反编译、资源文本/二进制双向转换四类操作具体用哪类看你的任务。二、动手前把 Godot 和依赖铺平gdsdecomp 是一个 Godot 引擎模块真正的宿主是 Godot 引擎源码。环境确认、拉代码按下面顺序做确认环境SCons 4.4.0、Python 3.9另外还需要 Rust 工具链rustup与 .NET 10 SDK。工具WindowsmacOSLinux编译工具链VS 2022 Build ToolsXcode 命令行工具build-essential clang脚本环境pip install sconspip install sconspip install scons额外工具链rustup .NET 10 SDKrustup .NET 10 SDKrustup .NET 10 SDK拉取仓库并放入 Godot 源码的modules/目录目录名必须叫gdsdecompgit clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp godot-src/modules/gdsdecomp预期结果godot-src/modules/gdsdecomp/下有SCsub、standalone/、bytecode/等目录。在 Godot 源码根目录重新编译引擎模块会随引擎一起构建。⚠️ SCons 配置阶段会自动给 Godot 核心打补丁目前只改main/main.cpp用于把gdre::modify_cli_args钩进 CLI 解析。补丁是幂等的想还原原始文件手动对该文件执行git checkout即可。预期结果编译通过bin/下生成godot编辑器与 template 二进制日志中能看到 gdsdecomp 模块的编译过程。三、跑起来图形集成与独立 CLI 两条路路径 A装进 Godot 编辑器按第二节完成克隆与引擎重编。启动编辑器先打开standalone/下的项目Godot RE Tools并等它完成资源导入。回到任意工程菜单栏出现RE Tools入口。预期结果菜单里能看到 PCK explorer、Recover project... 等选项。路径 B编译独立无头 CLI在 Godot 根目录编译 template 版本scons platformlinuxbsd targettemplate_debug用生成的二进制跑一条最小命令验证bin/godot.linuxbsd.template_debug.x86_64.llvm --headless --pathmodules/gdsdecomp/standalone --list-filesyour.pck预期结果列出 PCK 内的文件树res:// 开头再加--gdre-version参数则打印 gdsdecomp 工具版本号。四、核心任务从 PCK 拆资源到批量反编译4.1 从 PCK 包里做整项目恢复做完这步你能拿到一个完整项目反编译后的全部 .gd 脚本、还原的 project.godot、转回原始导入格式的资源。RE Tools 菜单里选Recover project...也可以直接把 PCK/EXE 拖进窗口。在文件对话框里选中目标 PCK/APK/EXE文件选择对话框支持 *.pck、*.apk、*.exe 三类输入PCK explorer 打开后勾选要恢复的文件选Full Recovery模式填 Destination folder点 ExtractFull Recovery 模式文件勾选、恢复模式与输出目录三件套等同参数走命令行bin/godot --headless --pathmodules/gdsdecomp/standalone --recoveryour.pck --output../recovered关键参数--keyKEY包加密时传入 64 字符十六进制密钥--scripts-only只恢复 GDScript跳过资源转换--include/--excludeglob 过滤**表示递归如res://**/*.gdc--force-bytecode-versionVER自动检测字节码版本失败时手动指定预期结果输出目录生成gdre_export.log恢复报告显示Failed scripts: 0用对应版本 Godot 打开项目无报错。4.2 批量反编译 GDC 字节码文件做完这步你能把散落在目录里的 .gdc 一次性变成 .gd直接进编辑器改。定位要处理的 .gdc 文件单个或目录。用 glob 批量指定输入bin/godot --headless --pathmodules/gdsdecomp/standalone --decompile*.gdc --bytecode4.3.0结果默认输出到源文件同位置想改位置就加--output。关键参数--bytecodecommit hash如f3f05dc或引擎版本如4.3.0反编译 2.x/3.x 老包时必须指定--outputDIR统一输出目录--load-custom-bytecodeJSON加载自定义字节码定义应对官方没收录的魔改版输入可重复传多个路径均支持 glob预期结果每个 .gdc 旁边多出一个同名 .gd内容是带extends声明的可读脚本。4.3 处理二进制资源与反编译异常做完这步你能确认 .res/.tscn 的二进制与文本形态一致且反编译失败时有据可查。原始项目用二进制资源.res/.ctex时把文本文件转回去bin/godot --headless --pathmodules/gdsdecomp/standalone --txt-to-binscene.tscn反过来用--bin-to-txtxxx.res。反编译或恢复失败时先查版本再重试bin/godot --headless --pathmodules/gdsdecomp/standalone --godot-version关键参数--txt-to-bin/--bin-to-txt可重复一次处理多个文件--ignore-checksum-errors跳过 MD5 校验文件被手动改过时用--dump-bytecode-versionsDIR导出全部已知字节码定义为 JSON预期结果转换后文件扩展名按二进制/文本形态正确对应--godot-version输出的版本应与gdre_export.log里检测到的引擎版本一致。恢复报告Decompiled scripts / Failed scripts / 资源转换统计一目了然五、卡住了怎么办Q反编译出来的 .gd 打开就是一堆语法错误A九成是字节码版本没对上。先看gdre_export.log里检测到的 Godot 版本再用--force-bytecode-version或--bytecode显式指定重试。还不行就查 BYTECODE_HISTORY.md确认该版本对应的 commit hash。Q提示加密错误文件解不开A先确认手里的密钥是 64 字符十六进制串用--key传入。密钥没问题还失败多半是游戏改写过密钥或用了非标准方案——此时参考 docs/custom_decryptors.md 写自定义解密脚本标准加密写法可对照 docs/gdre_standard_encryption.gd。QEXE 解析卡住不动A先跑--list-filesexe单独验证文件能读大文件本来就需要几分钟。只想看资源不想反编译的话加--scripts-only或配合--include缩小范围。Q恢复出的项目在 Godot 里打不开A恢复报告会写明该用哪个版本的编辑器打开版本不一致会出现大量导入报错。下载对应版本打开即可别拿最新版硬开。Q某些资源显示 Not converted / LossyA这是已知限制比如 2.x 的模型格式与 GDExtension 脚本暂不支持转换。报告末尾会列出具体原因能拿回的场景、脚本、纹理不受影响。做到这里gdsdecomp 从安装到反编译、资源提取的完整链路你已经跑通了。想再往下挖可以看 bytecode/ 目录里按引擎版本拆分的字节码定义以及 misc/bytecode_versions.json 了解工具到底认得多少代 GDScript 字节码格式。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考