gdsdecompGodot反编译与项目恢复只剩PCK还能拿回工程吗【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecompgdsdecompGodot RE Tools是一款开源的Godot反编译与项目恢复工具。它把APK、PCK或EXE里的编译产物拆出来将GDScript字节码还原为源码并把导入过的资源转回原始格式帮你拼回一个可以继续编辑的工程。 只剩APK或PCK恢复流程其实只有三步作为Godot项目恢复工具它的完整恢复做四件事反编译全部GDScript脚本、还原 project.godot、把导入资源转回原始格式、重建插件配置你得到的就是一个目录结构完整的工程。入口就两个菜单里的 Recover project...或者直接把 PCK/EXE 拖进主窗口。在GUI里挑输入、挑模式选输入文件对话框里挑 PCK、APK 或嵌入式 EXE--extract式的纯提取和完整恢复用的是同一个入口选模式仅提取只把文件原样拆出来完整恢复才会做脚本反编译和资源格式转换抢救项目选后者设置输出目录和密钥有加密时点确定开跑用恢复报告判断成败跑完它会弹出一份恢复报告并落盘一个 log 文件。重点看四行成功反编译的脚本数、失败的脚本数、成功转换的资源数、未转换的文件列表——报告末尾还会告诉你应该用哪个版本的 Godot 编辑器打开这份工程。⌨️ 命令行批处理批量反编译、PCK文件提取与回写不想点界面时gdre_tools --headless加主命令就能跑完同样的事适合 CI 或一次处理几百个文件。常用主命令--recoverPCK/EXE/APK完整项目恢复--extractPCK/EXE/APK只做 PCK 文件提取--decompileGDC/--compileGD批量反编译或反向编译glob 里用**递归--pck-create/--pck-patch从目录重建 PCK或把指定文件写回原包--bin-to-txt/--txt-to-bin场景和资源文件在文本与二进制格式间互转整包恢复一条命令就能跑gdre_tools --headless --recovergame.pck --outputrecovered执行后recovered/下会出现拼好的工程终端末尾打印和 GUI 相同的恢复报告。只想要脚本的话批量反编译加--bytecode指定版本即可gdre_tools --headless --decompile**/*.gdc --bytecode4.3.0执行后.gdc同位置生成对应的.gd文件版本号给错会直接报解析失败而不是产出乱码。加密包加--key大项目用--include/--exclude缩小范围版本实在识别不了可用--force-bytecode-version指定 commit 哈希或版本号。 从v1到v101GDScript字节码还原靠什么GDScript字节码还原的精度完全取决于版本定义文件是否齐全bytecode/目录里每对哈希命名的.cpp/.h就是一套对应版本字节码的解析器合计覆盖 Godot 1.0 到 4.5 的全部发行版字节码 v1~v101共 59 个版本定义。它怎么知道该用哪套解析器正常流程是自动检测检测不出来时你手动给版本。版本的差异记录在 misc/bytecode_versions.json 里逐版本列出了新增/删除的 token、函数变化例如 4.5-dev 时期加入的TK_PERIOD_PERIOD_PERIOD和三目运算符相关的改动想读人话版对照表可以看 BYTECODE_HISTORY.md它按 1.x / 2.x / 3.x / 4.x 分支排列了每个字节码编号对应的提交与变更。helpers/目录则是一组最小探测脚本靠引擎里有没有某个语法来反推版本供自动检测调用。 加密包先确认密钥再考虑自定义解密绝大多数解密失败是密钥不对而不是方案不行——先确认手里拿到的是 64 位十六进制密钥且游戏用的就是标准 AES-256-CFB 加密别急着写脚本。标准密钥路径标准方案下密钥通过--key传入GUI 里在 Set Encryption Key 菜单设置即可。crypto/目录实现了标准的加解密上下文AES、Camellia、Aria 等你不需要关心块结构、MD5 校验这些细节它们按读 magic、读 md5/length/iv、解密、验 md5的固定流程自动处理。自定义解密脚本游戏自己魔改了加密比如换了密钥排列或自定义算法时就写一个 GDScript 脚本继承CustomDecryptor类、实现_parse_and_decrypt()方法再用--custom-decryption-script传入路径。文件结构、加密流程的拆解和标准实现的参考代码gdre_standard_encryption.gd都写在 docs/custom_decryptors.md 里。注意文档明确说拿密钥这件事它不帮忙。 边界与坑哪些资源转不了从源码编译要什么官方明确了两类尚未支持的转换2.x 的模型文件dae/fbx/glb 等和 GDNative/GDExtension 脚本除此之外都能转转不了的会原样留在恢复报告里。用和游戏原版一致的 Godot 版本打开恢复后的工程报告里写明检测到的版本从源码构建把仓库克隆进 Godot 的modules/目录并命名gdsdecomp另需 rustup 和 dotnet 10 SDK3.x 的构建支持已停更但 3.x/2.x 项目的反编译能力保留从源码构建的命令就一行克隆git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp执行后得到本地仓库把它挪进modules/改名gdsdecomp再按 Godot 的编译文档重编引擎即可构建时 scons 会自动给main/main.cpp打幂等补丁以挂钩 CLI 参数解析。 划重点能救回多少取决于两个变量字节码版本匹不匹配、密钥对不对。完整恢复 脚本反编译 还原 project.godot 导入资源转回原始格式 插件配置重建入口是 Recover project... 或拖拽文件命令行形态是gdre_tools --headless加主命令批量反编译靠--decompile配--bytecode59 个版本的字节码定义都在bytecode/目录版本差异可查misc/bytecode_versions.json加密包先给 64 位十六进制密钥非标准加密方案再写 CustomDecryptor 脚本2.x 模型文件和 GDExtension 脚本暂未支持动手前先翻一遍恢复报告【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考