Godot 逆向工程工具 GDRE Tools:从 APK 到可编辑源码,3 步恢复完整项目
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
GDRE Tools(gdsdecomp)是一款 Godot 逆向工程工具,把 Godot 游戏的 PCK、APK 或嵌入式 EXE 变回完整可编辑的项目:GDScript 字节码反编译回文本,导入资源还原为原始格式,项目结构原样重建。手里只有一个 Godot 游戏编译产物、想拿到源码或批量提取资源,它直接对症。
没有它你会卡在哪
逆向 Godot 游戏最常撞的墙是:项目里根本没有源码。脚本全是编译后的 .gdc,场景和资源文件全是导入后的二进制格式,全部塞在 PCK、APK 或 EXE 里。更麻烦的是 Godot 2.x、3.x、4.x 各用各的字节码操作码,通用反编译器往往只认某一个版本,换个游戏就得重新折腾。GDRE Tools 就是为这件事做的。
能力速览
| 能力 | 命令 | 说明 |
|---|---|---|
| 完整项目恢复 | --recover | PCK/APK/EXE 一键变可编辑项目 |
| PCK 提取 | --extract | 只抽文件,不做转换 |
| GDScript 批量反编译 | --decompile | .gdc 转回 .gd,覆盖 Godot 2.x/3.x/4.x |
| 二进制 ↔ 文本互转 | --txt-to-bin/--bin-to-txt | 场景、资源文件批量转换 |
| PCK 创建 | --pck-create | 把目录打包成新 PCK |
| PCK 修补 | --pck-patch | 替换 PCK 内指定文件 |
| 文件列表 | --list-files | 先看 PCK 里有什么 |
| 翻译补丁 | --patch-translations | 用 CSV 补充翻译文件 |
🔧 上手:装好 → 跑起来 → 看到结果
Windows 用 Scoop 一条命令装好;其他平台拿 release 包,或把仓库克隆进 Godot 的modules/目录按官方文档编译引擎:
scoop bucket add games scoop install gdsdecomp然后整包恢复只需要一行:
gdre_tools --headless --recover=game.pck --output=recovered跑完recovered/里是一个完整项目目录:.gd 源码、文本格式场景、原始格式的图片音频都在,附带一份gdre_export.log恢复报告,写明检测到的引擎版本和反编译成功数。
⚡ 技术看点
一套全版本字节码库
GDScript 反编译不是简单的操作码倒读——每个 Godot 版本的指令集和编码都不同。工具在 bytecode/ 里内置了从 2.x 到 4.x 的大量版本定义,运行时按文件特征自动探测,探测不准时还能--force-bytecode-version=4.3.0手动指定。所以你不用关心游戏是 2.1 还是 4.3 编的,一条命令通用。
懂格式差异的资源管道
恢复不只是反编译脚本:compat/ 里的兼容层处理不同 Godot 版本间的资源格式差异,exporters/ 里的导出器把纹理、字体、音频、场景等导入产物逐类转回原始导入格式。最终你拿到的是一堆二进制文件,而是能直接在编辑器里继续开发的项目。
实战场景
从 APK 拆解一个游戏
好奇某款 Godot 手游的跳跃手感怎么调出来的?把 APK 拖进工具窗口,或--recover=game.apk。跑完得到带 .gd 源码的完整项目,编辑器里打开跳跃脚本,速度、地面判定、二段跳逻辑全在明面上。
只换 PCK 里一个文件
想给朋友的游戏换张贴图或改个脚本,又不想动其他几百个文件。--pck-patch指定源文件和 PCK 内目标路径,产出一份打补丁的 PCK:
gdre_tools --headless --pck-patch=original.pck --patch-file="new.gd=res://scripts/main.gd" --output=patched.pck批量反编译一堆 .gdc
手上一堆不知道版本的 .gdc,想全转回文本快速过目。--decompile配合通配符,--bytecode指定版本:
gdre_tools --headless --decompile="*.gdc" --bytecode=4.3.0进阶与自定义
- 加密项目:
--key传 64 位十六进制密钥,--recover和--pck-patch都能用 - 魔改引擎:
--dump-bytecode-versions导出全部定义改成 JSON,再--load-custom-bytecode=xxx.json加载,不用重编译工具 - 选择性处理:
--include/--exclude按 glob 过滤,不带目录的*通配符会自动按递归匹配
踩坑与排错
- 反编译出来的脚本一堆报错→ 字节码版本不对,加
--force-bytecode-version指定后重跑 - 提取失败或内容乱码→ 项目加密了,补上
--key=<64位hex> - MD5 校验错误→ PCK 本身有问题或被改过,
--ignore-checksum-errors继续,--skip-checksum-check直接跳过 - 恢复的项目在编辑器里打开大量报错→ 用恢复日志里写的 Godot 编辑器版本(例如 3.4)打开,别用最新版硬开
- 2.x 模型、GDNative/GDExtension 脚本没被转换→ 已知限制,官方明确暂未实现,别在这上面耗时间
GDRE Tools 把"逆向一个游戏项目到可编辑"压缩成一条命令,源码 MIT 协议。完整命令行选项和限制说明在 README 里;想给特殊版本加字节码支持,从 bytecode/ 的版本定义看起。
【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考