☰
GDRE Tools 实战指南:三步从 PCK 与 APK 恢复 Godot 项目源码
2026/10/18 2:00:06 网站建设 项目流程

GDRE Tools 实战指南:三步从 PCK 与 APK 恢复 Godot 项目源码

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

GDRE Tools(Godot RE Tools)是一个 Godot 逆向工程模块,能把已编译的 PCK、APK 或内嵌 EXE 还原为可编辑的 Godot 项目:反编译全部 GDScript、重建原始 project 文件、把二进制资源转回文本与导入源格式,并支持 Godot 4.x、3.x、2.x 三代项目。

一、核心能力速览

  • 完整项目恢复:从 PCK/APK/EXE 加载资源,批量反编译 .gdc 字节码,重建 project 文件与插件配置,导入资源回转原始格式。
  • GDScript 双向转换:.gdc 反编译为 .gd,也可用--compile反向编译为字节码。
  • PCK 归档操作:提取(--extract)、新建(--pck-create)、打补丁(--pck-patch),支持创建加密 PCK 并嵌入 EXE。
  • 资源格式互转:场景/资源的文本与二进制格式互转(--bin-to-txt/--txt-to-bin),以及翻译 CSV 补丁。

二、这些场景你最需要它

  • 学习他人游戏的实现:手上只有一个发布版 Godot 游戏,想看清场景结构、脚本逻辑和资源组织方式,直接恢复成工程再逐文件阅读。
  • 源码丢失,只剩打包文件:原始工程丢了,只剩 PCK、APK 或 EXE 时,用它把脚本和资源尽可能还原回来。
  • 跨引擎版本差异:工具内置多套字节码定义,4.x、3.x、2.x 编译的项目都能反编译,不必逐个版本找对应工具。

三、从文件到源码:三步完成逆向恢复

图形界面路径

  1. 打开已集成 GDRE Tools 的 Godot 编辑器,在RE Tools菜单选择Recover project...(也可以直接把 PCK/EXE 拖进窗口)。
  2. 选中目标 PCK、APK 或 EXE 文件。
  3. 若项目加密,在设置密钥处填入 64 位十六进制密钥;非加密项目直接开始恢复。

命令行路径

# 完整恢复项目 gdre_tools --headless --recover=game.pck --output=recovered_project # 加密项目:追加 64 位十六进制密钥 gdre_tools --headless --recover=game.pck --key=000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F

如果选择从源码构建 Godot,独立入口是bin/godot.linuxbsd.template_debug.x86_64.llvm --headless --path=modules/gdsdecomp/standalone --recover=<pck/apk/exe>。

恢复日志会标明检测到的引擎版本——编辑恢复出的项目时,请使用对应版本的 Godot,这是避免报错的前提。

四、常用命令行速查表

需求命令
完整项目恢复gdre_tools --headless --recover=game.pck
只提取脚本gdre_tools --headless --recover=game.pck --scripts-only
批量反编译 .gdcgdre_tools --headless --decompile="*.gdc" --bytecode=4.3.0
强制指定字节码版本追加--force-bytecode-version=4.3.0(也接受提交哈希,如f3f05dc)
按 glob 过滤文件追加--include="res://**/*.gdc" --exclude="res://test/**"
列出支持的字节码版本gdre_tools --headless --list-bytecode-versions

glob 写法说明:**表示递归匹配,未写res://前缀的模式会自动补到res://下;单独写*.gdc等价于res://**/*.gdc。

五、恢复失败?先排查这 5 处

  1. 解密失败或内容乱码:--key必须是 64 字符十六进制字符串;若确认密钥正确仍失败,游戏可能使用了非标准加密方案,此时需要编写继承CustomDecryptor的自定义解密脚本,通过--custom-decryption-script传入,写法参考 docs/custom_decryptors.md。
  2. 引擎版本检测失败:用--force-bytecode-version=4.3.0手动指定,先用--list-bytecode-versions确认支持的版本列表。
  3. MD5 校验和不匹配:提取/恢复时加--ignore-checksum-errors跳过校验错误,或用--skip-checksum-check直接跳过校验(注意这会跳过完整性检查)。
  4. 磁盘空间或权限问题:用--output=<DIR>显式指定输出目录,确认目标盘有足够空间且当前用户可写;默认输出目录为<NAME_extracted>。
  5. 个别资源未还原:已知限制——2.x 模型(dae、fbx、glb等)和 GDNative/GDExtension 脚本暂不支持转换,这类文件会保持原样,属于正常现象而非故障。

六、进阶:自定义字节码与 PCK 操作

遇到引擎 fork 或特殊版本时,可以用--load-custom-bytecode=<JSON_FILE>加载自定义字节码定义文件;用--dump-bytecode-versions=<DIR>可把内置的全部字节码定义导出为 JSON,作为自定义文件的起点。

PCK 操作两条常用命令:

# 从目录新建 PCK(版本号取 0/1/2,引擎版本为 x.y.z) gdre_tools --headless --pck-create=project_dir --pck-version=2 --pck-engine-version=4.3.0 --output=new.pck # 用本地文件修补现有 PCK(源路径=res:// 目标路径) gdre_tools --headless --pck-patch=game.pck --patch-file=/path/to/file.gd=res://file.gd

一条命令、一份日志,就能把打包文件还原成可继续开发的 Godot 工程——工具的价值在于把逆向成本降到一次命令行的程度。请仅将本流程用于学习研究与自有项目的资产找回,尊重原作者的版权与劳动成果。

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

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

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

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

立即咨询