3 步完整恢复 Godot 工程GDC 反编译与资源提取【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp手头只有一个 APK 或 PCK 文件想看看里面的 Godot 工程长什么样、脚本写了什么。gdsdecomp 是面向 Godot 的逆向工程工具集从 APK/PCK/EXE 完整恢复工程、批量反编译 GDC 字节码、转换资源格式。如果你做逆向分析、竞品学习或源码找回它是能一键跑通全流程的工具。先跑起来 —— 最快上手路径gdsdecomp 是作为 Godot 引擎的一个模块编译运行的最短路径如下把仓库克隆到 Godot 源码树的modules目录下目录名必须是gdsdecompgit clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp godot/modules/gdsdecomp这一步是安装它不是独立程序而是挂进 Godot 里跑的模块。在 Godot 源码目录编译需要 rustup 和 dotnet 10 sdkscons platformlinuxbsd targettemplate_debug编译产物是bin/下的 template_debug 可执行文件里面已经带上了 gdsdecomp。以 headless 模式跑 standalone 工程对任意 PCK/APK/EXE 执行完整恢复bin/godot.linuxbsd... --headless --pathmodules/gdsdecomp/standalone --recovergame.pck跑完后会在旁边生成名字_extracted目录里面是可以在 Godot 编辑器里直接打开的工程脚本已经是 .gd 源码。GUI 长这样反编译、恢复、资源转换都在菜单里gdsdecomp 的 GUI 主界面拖入 PCK 或 EXE 即可开始恢复它到底能做什么 —— 能力速览能力解决的痛点完整工程恢复APK / PCK / EXE / 目录源码丢失时一次拿回可打开的工程含脚本、场景、纹理、音频GDC 批量反编译支持 Godot 2.x / 3.x / 4.x.gdc 字节码不可读且每个大版本格式都不同PCK 提取 / 创建 / 打补丁想看清包里有什么或往里换资源文本 ↔ 二进制资源互转.tres ↔ .res二进制 .res 没法直接看导出时又要转回二进制标准 AES 解密 自定义解压器扩展加密资源开箱即解非标准加密方案有官方扩展点幕后机制 —— 它是怎么做到的整条链路是输入 → 处理 → 输出三段输入APK、PCK、EXE 或已解压的目录。工具先剥掉外层容器APK 解出 assets、EXE 解出内嵌 PCK拿到 PCK 索引。如果文件是加密的标准流程用 64 位 hex 密钥走 AES-256-CFB 解密。处理这是出问题的重灾区。GDC 反编译前要先确定字节码版本——各版本间的 token 和函数差异都记录在 misc/bytecode_versions.json 里运行时按这份定义还原出 GDScript 源码。二进制 .res/.tres 会转回文本格式导入过的资源纹理、音频、字体会还原成原始导入格式插件配置也会重建。输出一个结构完整、引用关系正确、能用原版 Godot 版本打开的工程目录外加一份恢复日志。打个比方它像一条拆机流水线先读铭牌字节码版本再按铭牌拆零件最后按原结构装回去。铭牌读错就会拆坏所以下面这些坑大多和版本有关。实战两个高频场景场景一从加密的 APK 完整恢复工程你遇到这种情况手里是game.apk里面 PCK 是加密的你已经有提取出来的密钥。跑这条命令bin/godot... --headless --pathmodules/gdsdecomp/standalone --recovergame.apk --key0001...1f--recover触发完整恢复流程--key给 64 字符 hex 密钥--output可以指定输出目录--scripts-only则只恢复脚本。预期结果一个完整工程目录 一份记录每个资源处理结果的日志。恢复流程中的对话框选定目标后工具开始解密、反编译并重建工程场景二单独反编译几个 .gdc 文件你遇到这种情况从别处捞到了几个.gdc但没有完整工程只想看脚本内容。跑这条命令bin/godot... --headless --pathmodules/gdsdecomp/standalone --decompilemain.gdc --bytecode4.3.0--decompile支持通配符批量处理--bytecode接收提交哈希如f3f05dc或版本号如4.3.0不确定版本时先跑--list-bytecode-versions查清单。预期结果.gdc 旁边生成对应的 .gd 文件。踩坑速查看到 unsupported bytecode version 或反编译输出乱码→ 大概率是字节码版本和游戏实际构建版本不匹配。 → 看恢复日志里检测到的版本用--force-bytecode-version版本或提交哈希强制指定更极端的版本可以用--load-custom-bytecodeJSON加载自定义字节码定义格式参考 misc/bytecode_versions.json。提取时报 MD5 校验错误→ 通常是密钥不对或该文件被改动过。 → 先确认密钥是完整的 64 位 hex确认密钥没错但个别文件确实被改过可以加--skip-checksum-check或--ignore-checksum-errors绕过。恢复后的工程在 Godot 里打不开场景、资源引用报错→ 多半是用错了引擎版本或碰到了不支持的资源类型README 明确 2.x 的 3D 模型、GDNative/GDExtension 脚本暂不支持转换。 → 用日志里标明的 Godot 版本打开工程再在日志里定位具体失败的资源。恢复日志每个资源的处理结果和版本检测结果都在这里还能怎么玩游戏用了非标准加密官方留了扩展点写一个继承CustomDecryptor的脚本实现_parse_and_decrypt()教程见 docs/custom_decryptors.md标准加密流程也有参考实现 docs/gdre_standard_encryption.gd。C# 项目反编译有内置的 godot-mono-decomp/ 模块能从程序集里还原 C# 脚本。打开终端对你手头那个 PCK 或 APK 跑一次--recover。工程目录出来的那一刻你就知道日志里每个报错值不值得追了。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考