Godot RE Tools 逆向工具箱:项目恢复、GDScript 反编译与 PCK 解包实战指南
发布时间:2026/10/18 23:21:57 锦皓数字建站

Godot RE Tools 逆向工具箱项目恢复、GDScript 反编译与 PCK 解包实战指南【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecompgdsdecompGodot RE Tools是一套 Godot 逆向工程工具箱对 APK/PCK/EXE 做完整项目恢复、批量 GDScript 反编译、PCK 归档提取与创建、资源文本/二进制互转。适合想把 Godot 游戏还原成可编辑项目的修改者以及做资源分析、版本考古的逆向工程师。能力速览这套工具箱到底能干什么功能还在持续完善中但核心链路已经比较完整。四项能力对应不同的工作场景能力说明完整项目恢复Recover从 APK、PCK 或嵌入 EXE 中加载资源批量反编译全部 GDScript重建project文件把导入资源还原成原始导入格式把被引擎自动转成二进制的资源转回文本格式并重建插件配置文件PCK 归档工具--extract解包、--pck-create从目录打包可--embed进 EXE、--key加密、--pck-patch对已有 PCK 打补丁替换文件GDScript 批量反编译--decompile支持通配批量处理内置从 2.x 到 4.x 各字节码版本的定义可用--list-bytecode-versions查看映射关系见 BYTECODE_HISTORY.md资源格式转换--txt-to-bin/--bin-to-txt互转场景与资源文件GUI 里还有 .stex 转 PNG、OGG 流转 OGG、WAV 采样转 WAV 等快捷转换版本支持现状4.x 是主力支持3.x/2.x 项目仍可正常反编译和处理但 3.x 的引擎构建支持已经终止不再推新特性。上图是典型工作现场左侧是 PCK 内部文件树可见res://下的.gdc字节码脚本右侧是对比视图反编译出的 GDScript 与原始注释版并排显示方便核对反编译质量。两条获取路线直接下二进制 vs 源码编译路线一直接拿预编译二进制到项目 Release 页面下载最新的预编译版本即可不需要自己搭环境。Windows 上也可以走 Scoopscoop bucket add games scoop install gdsdecomp第一行添加 games 桶第二行安装 gdsdecomp装完命令就叫gdre_tools。路线二从源码构建给要魔改模块的工程师前提本模块不是独立程序而是 Godot 引擎模块必须跟着引擎一起编译。放置目录把仓库 clone 到 Godot 源码树的modules子目录下且目录名必须叫gdsdecompgit clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp godot_root/modules/gdsdecomp引擎基线需要配套 fork 的 Godot 仓库并切到gdre-wb-f964fa714f5分支。SCons configure 阶段会做分支校验分支不对直接报错退出可用ignore_godot_branch_checktrue跳过但不推荐。依赖除 Godot 官方编译指南 所述基础依赖外还需要 rustup 和 dotnet 10 sdk分别用于 vtracer 矢量化和 C# 反编译子模块godot-mono-decomp。编辑器配置小技巧仓库 .vscode 里带了 launch、build、settings 三套模板。按官方指南搭好 Godot 构建环境后把这三个.json.template拷到 Godot 根目录的.vscode文件夹、去掉.template后缀再从 Godot 根目录启动 VSCode调试链路就是现成的。一个坑提前说SCons 首次 configure 时会自动把 patches/main-cli-parse-inject.patch 打到 Godot 核心的main/main.cpp上用于把gdre::modify_cli_args钩进 CLI 解析。这个过程是幂等的重复跑 scons 不会有副作用想还原就git checkout -- main/main.cpp。构建顺序先编译 editor target然后至少用它打开一次 standalone 目录下的项目让资源完成导入再执行恢复动作。编译成 template 后也可以直接跑独立版bin/godot.linuxbsd.template_debug.x86_64.llvm --headless --pathmodules/gdsdecomp/standalone --recover/path/to/game.pck--path指定 standalone 项目--headless无界面运行--recover后面接目标文件——这三段是源码自编译场景下的最小可运行命令。GUI 路线四步完成一次完整项目恢复启动运行带本模块的 Godot或独立版 Godot RE Tools 应用。菜单入口顶部RE Tools菜单 →Recover project...。偷懒一点也行直接把 PCK/EXE 拖进应用窗口效果等同。加密分支如果目标项目是加密的会解密失败。先到RE Tools→Set encryption key...填密钥64 字符 hex 串如果游戏用了非标准加密方案该入口还能挂自定义解密脚本写法参考 docs/custom_decryptors.md。选文件在文件对话框里选.pck/.apk/ 嵌包 EXE。识别的文件类型以*.pck, *.exe等为准确认输出弹出的 PCK explorer 对话框里上半部分列出归档内全部文件可勾选/取消勾选下半部分二选一Extract only只提取不解密还原或Full Recovery完整恢复再指定 Destination folder点Extract...开跑跑完后会弹一份 Recovery report告诉你应该用哪个版本的 Godot 编辑器打开恢复出来的项目、反编译成功/失败脚本数、资源转换成功/失败数并给出日志文件路径——报 issue 时记得附上它经验提示报告里提示的编辑器版本要尽量对上原游戏编译时的版本恢复日志会写明检测到的版本如果打开项目后大量脚本/shader 报错说明游戏可能用了定制版 Godot此时可以拿原游戏的二进制当导出模板。命令行路线批量解包参数速查无头模式是批处理和自动化流程的主场基本形如gdre_tools --headless --recover/path/to/game.pck解释--headless无界面运行--recoverPCK/EXE/APK/目录对指定目标做完整项目恢复。只想要原始文件不转换的话把--recover换成--extract只想看看包里有啥用--list-files。主命令一览每个都必填且一般只选一个--recover目标完整项目恢复--extract目标仅提取--list-files目标列出归档内文件后退出--decompileGDC/--compileGD批量反编译 / 反向编译成字节码都支持通配可重复--pck-create目录从目录新建 PCK--pck-patchPCK/EXE给 PCK 打补丁--txt-to-bin文件/--bin-to-txt文件资源文本/二进制互转--patch-translationsCSV路径用 CSV 补丁翻译--list-bytecode-versions列出所有支持的字节码版本Recover/Extract 常用可选参数参数用途--keyKEY加密项目必填64 字符 hex 密钥--outputDIR输出目录缺省为NAME_extracted--scripts-only只处理脚本跳过资源--includeGLOB/--excludeGLOB按通配过滤文件可重复--ignore-checksum-errors/--skip-checksum-check忽略 / 跳过 MD5 校验对付校验损坏的包--force-bytecode-versionV强制字节码版本commit 短 hash 或4.3.0这类版本串--csharp-assemblyPATHC# 项目的程序集路径缺省时从 PCK 自动探测--load-custom-bytecodeJSON加载自定义字节码定义适配魔改引擎两个容易踩的细节GLOB 规则递归要用**res://**/*.gdc不写根路径的 GLOB 默认按res://处理带通配符但不含目录时自动当递归模式。注意过滤匹配的是 PCK 里实际存在的文件——比如res://main.gdc在包里而res://main.gd不在include 写.gdc才能恢复出.gd。PCK 创建三件套--pck-create必须配--pck-version格式版本 0/1/2和--pck-engine-versionx.y.z再加--output指定产物想嵌进 EXE 或加密就分别加--embed/--key。能力边界哪些场景做不了替代方案在哪提前划清边界能省很多排查时间GDNative / GDExtension 脚本这类原生扩展脚本不在反编译范围内。需要分析这部分逻辑的话得换原生二进制逆向工具反汇编、反编译器来处理。2.x 模型dae、fbx、glb等 2.x 模型的转换尚未实现。未实现的资源类型恢复报告里会明确列出因支持尚未实现而未转换的文件清单并计入 Not converted 统计——看到它别慌属已知边界而非损坏报告本身也会建议把日志附上提 issue。C#GDMono项目恢复链路本身支持--csharp-assembly可指定程序集仓库内置godot-mono-decomp模块但具体效果取决于版本匹配拿不准时仍建议搭配 ILSpy / dotPeek 这类 .NET 反编译器交叉验证。加密标准 AES-256-CFB 加密给对--key就能解大部分解密失败其实是密钥不对游戏可能加载后对 key 做了变换。确认非标准加密后按 docs/custom_decryptors.md 写自定义解密脚本挂进去工具组不提供密钥提取支持。写在最后对开发者和修改爱好者来说这套工具的价值在于把拿到一个打包好的 Godot 游戏变成打开一个能继续开发的项目中间的脚本、场景、资源、插件配置基本都能自动还原。功能持续完善中遇到反编译失败或格式没覆盖的场景把 Recovery report 里的日志附上直接提 GitHub issue 就行。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。