Godot 反编译实战:3步把PCK文件还原成完整GDScript源码
Godot 反编译实战3步把PCK文件还原成完整GDScript源码【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp源码目录丢了手里只剩一个打包后的 PCK 文件Godot 反编译工具 gdsdecompGodot RE Tools可以读取 PCK、APK 或 EXE把 GDScript 字节码还原为可读源码并重建项目结构。下面是从安装到恢复出项目的完整流程。先看边界它能做什么做不到什么gdsdecomp 是构建为 Godot 编辑器模块的逆向工程工具集。先说清一个概念PCK 可以理解为项目的 zip 包准确说它是 Godot 打包游戏时生成、内含全部项目资源的归档文件。gdsdecomp 能读取 PCK、APK、EXE 三类载体提供项目完整恢复、PCK 归档提取、GDScript 批量反编译、资源文本与二进制互转四类能力。它覆盖 Godot 4.x、3.x 和 2.x 项目但有两个明确短板2.x 模型资源dae/fbx/glb 等与 GDNative/GDExtension 脚本README 中标注为尚未实现。功能Godot 4.xGodot 3.xGodot 2.xGDScript 字节码反编译支持支持支持PCK/EXE/APK 资源提取支持支持支持项目完整恢复支持支持支持模型资源转换支持支持不支持GDNative/GDExtension 脚本不支持不支持不支持它适合三类人找回丢失源码的开发者、想研读某款游戏实现的工程师、需要核对打包产物的 QA。上手指南从安装到完整恢复安装准备两种方式任选多数人用发行版二进制即可只有需要自定义时才从源码编译。方式一下载发行版二进制。Windows 上也可以用 Scoop 安装scoop bucket add games scoop install gdsdecomp预期结果终端执行gdre_tools --version能打印出版本号。方式二源码编译。克隆仓库放到 Godot 源码的modules目录下并命名为gdsdecomp再按 Godot 官方文档重新编译编辑器git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp gdsdecomp编译依赖 rustup 与 .NET SDKREADME 提及 dotnet 10具体以官方文档为准。注意SCons 构建会自动给 Godot 的main/main.cpp打补丁以挂接 CLI 解析还原时执行git checkout -- main/main.cpp即可。基本操作GUI 和命令行都能完整恢复GUI 与命令行两条路径等价选一条走通即可。GUI 上手最快。启动工具后在 RE Tools 菜单选择 Recover project...也可以直接把 PCK/EXE 拖进窗口预期结果弹出文件选择框选中文件确认后进入主界面。左侧 PCK 浏览器展示完整文件树反编译对话框可以并排对比源码与反编译结果命令行分两步先列文件再执行恢复。第一条命令打印 res:// 下的全部文件第二条执行完整恢复产物写入recovered目录gdre_tools --headless --list-filesgame.pck gdre_tools --headless --recovergame.pck --outputrecovered预期结果 ✅命令结束后弹出恢复报告列出反编译脚本数、资源转换统计和应使用的 Godot 版本记住用与原项目相同版本的 Godot 打开恢复出的工程。进阶参数加密、筛选与版本锁定进阶参数主要处理三种情况加密项目、部分提取、字节码版本不匹配。参数作用--keyKEY⚠️ 加密 PCK 的解密密钥64 位十六进制字符串--includeGLOB/--excludeGLOB文件筛选支持**递归如res://**/*.gdc--force-bytecode-versionVERSION强制字节码版本版本号或 commit hash--scripts-only只提取脚本速度更快--ignore-checksum-errors提取时忽略 MD5 校验错误--translation-hintFILE提供翻译键提示文件辅助翻译恢复用法示例只提取脚本时在恢复命令后追加--scripts-only单独反编译散落的 GDC 文件用--decompileGDC_FILE搭配--bytecode4.3.0。全部参数见 README.md。避坑问答恢复失败时先查这里以下五种情况覆盖了多数恢复失败先对号入座再动手。现象反编译失败或输出乱码。原因字节码版本不匹配游戏可能用开发版 Godot 构建。 解决先执行--list-bytecode-versions查看内置版本列表再用--force-bytecode-version4.3.0指定自定义版本可用--load-custom-bytecodeJSON载入自定义定义文件。现象提取时提示 MD5 校验错误。原因PCK 打包后被修改过例如做过补丁。 解决追加--ignore-checksum-errors忽略错误或--skip-checksum-check直接跳过校验。现象工程能打开但编辑器里报错很多。原因Godot 编辑器版本与项目编译版本不一致。 解决使用恢复日志中报告的版本打开仍报错较多时换用原游戏二进制作为导出模板再试。现象报告里出现 Not converted。原因2.x 模型与 GDNative/GDExtension 脚本尚不支持。 解决这些资源需要人工处理官方清单见 README 的 Limitations 小节。现象项目读不了提示需要密钥。原因导出时设置了加密。 解决拿到密钥后用--key传入非标准加密方案参考 docs/custom_decryptors.md 中的自定义解密说明。GDS 反编译适用于找回源码、研读游戏实现、核对打包产物三类场景恢复出的工程保持与原版一致的 Godot 版本即可照常编辑。最后提醒一句只对你有权处理的项目做逆向成果用于学习和分析范围内。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考