ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

GDRE 实战:从 PCK / APK 把 Godot 项目源码完整救回来(快速上手)

GDRE 实战:从 PCK / APK 把 Godot 项目源码完整救回来(快速上手)

GDRE 实战:从 PCK / APK 把 Godot 项目源码完整救回来(快速上手)

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

GDRE(Godot Reverse Engineering Tools)是一款 Godot 逆向工具,能从 PCK、APK、EXE 这类打包文件里把工程源码和资源完整恢复出来。如果你手头的源码丢了、只剩打包好的游戏,它能帮你找回场景、脚本和素材,适合需要修复、分析或迁移 Godot 项目的开发者和学生。

它都能做哪些事

  • 恢复完整工程:从 APK / PCK / EXE 载入资源,反编译全部 GDScript 脚本,重建工程文件
  • 批量把 GDScript 字节码(脚本编译后的中间格式)反编译回可读源码
  • 把二进制资源转回文本格式,并把导入过的资源还原成原始导入格式
  • 重建插件配置文件,支持给现有 PCK 打补丁、从目录新建 PCK
  • 处理加密工程:支持 64 位十六进制密钥解密,也可加载自定义解密脚本

什么处境会需要它

  • 原始工程目录找不到了,只剩打包好的 APK 或 EXE,想把项目救回来继续开发
  • 老师手里只有学生交上来的作业 PCK,想看看游戏逻辑具体是怎么写的
  • 项目是 2.x / 3.x 的旧工程,想先恢复源码,再迁移到新版引擎

快速上手:图形界面 3 步恢复源码

先装好带 GDRE 模块的 Godot 编辑器(从 Release 下载或自行编译):

  1. 在 "RE Tools" 菜单打开 "Recover project..."(也可以直接把 PCK / EXE 拖进窗口)
  2. 在恢复对话框里确认检测到的 Godot 版本,指定输出目录
  3. 点 Extract,等进度走完,输出目录里就是恢复好的工程

习惯命令行的话,最常用的一条是(在系统终端中运行,Windows / macOS / Linux 均可):

gdre_tools --headless --recover=game.pck --output=recovered_dir

加密工程则同样在终端运行,加上密钥和强制字节码版本:

gdre_tools --headless --recover=game.pck --key=0001020304050607... --force-bytecode-version=4.3.0 --output=recovered_dir

卡住了:加密、版本识别、路径错乱怎么排查

🔑解密失败

  • 如果日志报解密错误,先核对密钥是否为完整的 64 位十六进制串,用--key=<KEY>重新传入
  • 如果游戏用了非标准加密算法(不是 Godot 默认的 AES-256-CFB),就写一个继承CustomDecryptor的 GDScript,通过--custom-decryption-script传入,写法参考 docs/custom_decryptors.md

🔍版本识别失败

  • 如果恢复日志判断不出脚本对应的字节码版本,就用--force-bytecode-version=4.3.0手动指定
  • 跑一下gdre_tools --headless --list-bytecode-versions,可以看到全部支持的版本列表

🧩资源路径错乱

  • 如果只想恢复部分文件,用--include/--exclude加通配符过滤,例如--include=res://**/*.gdc
  • 如果脚本里引用的资源加载不出来,先检查是不是没用对应版本的引擎:恢复日志会写明检测到的版本,换对应版本重新打开工程

恢复后怎么验

  1. 打开恢复日志,核对检测到的版本与原工程编译版本是否一致,顺带看每类文件的处理状态
  2. 用对应版本的 Godot 编辑器打开恢复目录,确认场景能打开、没有红色报错
  3. 把项目跑一遍,走通核心流程,确认关键脚本的逻辑完整

收尾

做完这几步,工程就能重新打开,恢复出的 .gd 和场景文件可以直接在编辑器里继续改。各版本字节码与引擎版本的对应关系,可查 BYTECODE_HISTORY.md。

几条实用提醒:

  • 编辑恢复的工程时,用和原游戏编译时相同版本的 Godot,恢复日志里记录了检测到的版本
  • 2.x 模型和 GDNative / GDExtension 脚本暂不支持转换,这两部分需要手动处理
  • 自定义解密脚本里别把密钥写死,随脚本分发密钥有版权风险

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

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

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进