从 APK/PCK 恢复完整 Godot 项目:gdsdecomp 上手与实战指南
从 APK/PCK 恢复完整 Godot 项目gdsdecomp 上手与实战指南【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecompgdsdecompGodot RE Tools是一个面向 Godot 引擎的逆向工程工具集它能从 APK、PCK 或内嵌 EXE 中加载项目资源反编译全部 GDScript 脚本重建 project.godot并把导入后的二进制资源还原为原始格式——覆盖 Godot 4.x、3.x 与 2.x 三代字节码。如果你手上只有一个打包后的 Godot 游戏又想看到它的源码和资源这就是为这件事做的工具。什么情况下你会需要它三个真实场景基本覆盖了这类工具的全部需求源码丢失只剩包项目误删磁盘上只剩下game.pck或 Android 的APK。手工解析 PCK 格式、逐版本手写字节码解释器不现实gdsdecomp 一条--recover命令即可恢复可编辑的完整项目。学习/分析别人的实现拿到竞品或演示项目的发布包想知道某个系统比如战斗状态机具体怎么写的。--decompile可以只反编译脚本不动资源。改包再打包想给别人的 PCK 打补丁或自己重建 PCK--pck-patch和--pck-create支持从目录生成 PCK、把 PCK 嵌入可执行文件--embed还能顺带加密--key。工具以 Godot 模块的形式开发仓库根目录有SCsub、register_types.cpp但日常使用不需要源码编译——直接拿 release 版的gdre_tools二进制或者在 Windows 上用 Scoop 安装git clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp scoop bucket add games scoop install gdsdecomp预期结果本地有一份仓库里面有测试用的 PCK 和脚本后面直接拿来练手以及一个可执行的gdre_tools。所有命令行用法都遵循同一模式gdre_tools --headless 主命令 [选项]--help可查看全部参数。场景一一条命令恢复整个项目仓库自带 17 个不同 Godot 版本导出的示例项目2.1.1 到 4.5.1不用等自己找到目标游戏就能验证流程。以 4.5.1 为例执行恢复命令gdre_tools --headless --recovertests/test_projects/exported/4.5.1/2d/platformer/platformer.pck --outputrecovered_451预期会看到按步骤推进的恢复日志加载 PCK、检测引擎版本、逐个反编译.gdc、还原资源。跑完后recovered_451目录里应该出现project.godot、反编译出的.gd源码以及从导入格式还原的资源文件比如纹理还原为 PNG、.res二进制还原为.tres文本。几个高频参数值得记住--key64位十六进制串项目加密时提供 AES-256-CFB 密钥。注意大多数解不开的问题是密钥不对而不是格式不支持。--scripts-only只恢复脚本速度快很多适合只想看代码的情况。--include/--excludeglob 过滤如--includeres://**/*.gdc。注意匹配的是 PCK 里实际存在的文件.gdc不是源文件名.gd。--force-bytecode-version4.3.0版本自动检测失败时手动指定也接受 commit hash如f3f05dc。恢复日志会打印检测到的引擎版本——编辑恢复出的项目时请装同一版本的 Godot这是官方 README 明确提示的一点。场景二批量反编译 .gdc 脚本如果只需要代码不必恢复整个项目。仓库tests/test_scripts/4.4/code/里正好有成对的.gd源码和.gdc字节码方便对比反编译质量gdre_tools --headless --decompiletests/test_scripts/4.4/code/*.gdc --bytecode4.4.0 --outputdecompiled_44--bytecode既可以是版本号4.4.0也可以是字节码的 commit hash--output省略时编译/反编译结果会直接落在原文件旁边main.gd对应main.gdc。预期输出是decompiled_44下出现main.gd、player.gd等文本脚本内容可读、缩进正常。反过来工具也能把.gd编译成字节码--compile... --bytecode...以及做.res/.tres的二进制与文本互转--txt-to-bin/--bin-to-txt。这两组命令对改完脚本再塞回 PCK的工作流很有用。它是怎么做到的三个关键模块理解三块实现基本就理解了 gdsdecomp 的能力边界。1. 字节码版本调度bytecode/Godot 每个版本的 GDScript 字节码格式都不同这正是逆向里最容易踩的坑。该目录里有 60 多个版本专用的解析器bytecode_*.cpp每个对应一个字节码修订号由 bytecode_versions.cpp 统一注册和调度先读.gdc文件头的版本号再查表路由到对应解析器。完整版本谱系记录在 BYTECODE_HISTORY.md——从 2014 年分支 1.0 的 bytecode 1 一路到 4.x每个 commit 改了什么一目了然。新增版本解析器不需要手写bytecode_generator.py 可以自动生成。2. PCK/EXE 容器解析utility/gdre_packed_source.cpp 是容器层的核心不仅解析 PCK 的头部与文件表还实现了从 Windows PE、Linux ELF、macOS MachO 可执行文件中定位内嵌 PCK 的逻辑EXEPCKInfo结构里能看到三种 EXE 类型的枚举。这就是直接拖一个game.exe进去也能恢复的原因。pck_dumper.cpp 负责把解析出的文件落盘pck_creator.cpp 则负责反向打包task_manager基于 WorkerThreadPool 把独立任务分给多线程跑。3. 资源还原与版本兼容compat/ 与 exporters/Godot 4 导入后的资源大多是二进制格式.res、.ctex等要还原成编辑器里能直接编辑的文本/原始格式且 3.x 与 4.x 的资源二进制结构还不通用。resource_compat_binary.cpp 和 resource_compat_text.cpp 提供跨版本的资源读写兼容层exporters/ 里的gdscript_exporter、scene_exporter、texture_exporter等则按资源类型分派导出策略保留原始导入设置确保恢复出来的项目能在编辑器里正常打开。加密项目怎么解标准流程确认游戏用的是 Godot 原生加密AES-256-CFB从 exe 里提取 32 字节密钥转成 64 字符十六进制串传给--key。如果游戏用的是自定义加密密钥在加载后被置换、或换用了别的算法原生解密必然失败。此时可以写一个自定义解密脚本继承CustomDecryptor类实现_parse_and_decrypt()用仓库内置的AESContextGDRE、CamelliaContext、AriaContext三种加密上下文完成解密。完整的写法约定文件头结构、解密流程、脚本如何注入见 docs/custom_decryptors.md标准加密的参考实现可以直接照抄 docs/gdre_standard_encryption.gd。C# 项目是另一条支线Godot 4 的 .NET 游戏需要额外提供程序集--csharp-assembly路径.dll不给时会从 PCK 路径自动检测。反编译由 godot-mono-decomp/ 下的 C# 工程完成从源码构建时需要 .NET SDK。进阶与避坑报 Unsupported bytecode version先--list-bytecode-versions确认工具覆盖的范围再用--force-bytecode-version版本或commit强制指定仍不行说明游戏用的引擎版本超出支持区间。MD5 校验报错--ignore-checksum-errors忽略校验失败继续提取--skip-checksum-check则直接跳过校验。改包后校验必然不匹配属正常现象。恢复的项目在编辑器里打不开九成是引擎版本不一致。恢复日志里会写明检测到的版本用它打开项目即可资源引用问题再看恢复日志中的警告条目。已知能力边界README 明说2.x 的模型格式dae/fbx/glb和 GDNative/GDExtension 脚本暂无转换支持遇到这类资源只能拿到二进制原件。大型项目不必一次全量恢复。先--extract拿资源再对**/*.gdc分批--decompile最后--bin-to-txt处理二进制资源既省内存也方便断点续做。打补丁回写--pck-patchoriginal.pck --patch-file/abs/path/new.gdres://scripts/main.gd --outputpatched.pck--patch-file可重复多次配合--embed能把补丁 PCK 直接写回可执行文件。下一步gdsdecomp 把只能拿到编译产物的 Godot 项目变成可以打开、可以改、可以重新打包的项目核心就是版本全覆盖的字节码反编译 容器级 PCK 读写。建议的动作先跑通上面 4.5.1 测试项目的--recover流程打开recovered_451目录和反编译出的.gd文件确认效果然后再拿一个真实目标包从--list-files开始逐步深入。遇到新引擎版本时查一下 BYTECODE_HISTORY.md 里对应 commit 的字节码改动基本就能判断该版本是否已被覆盖。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解

Convert to it PriorityQueue 拆解 【免费下载链接】convert Truly universal online file converter 项目地址: https://gitcode.com/GitHub_Trending/convert7/convert Convert to it 敢承诺"任何格式转任何格式",底气来自在格式图上做路径搜索。…

2026/10/18 16:15:27 阅读更多 →
Teamcenter管理员运维地图:备份、日志、权限与升级实战

Teamcenter管理员运维地图:备份、日志、权限与升级实战

简介:这份西门子Teamcenter管理员操作手册,面向TC系统管理员及PLM项目实施人员,系统梳理Teamcenter 11/12/13环境下的配置、管理与维护方法。手册从管理员职责切入,重点展开服务器端操作:业务建模器的模板项目创建与部…

2026/10/18 16:15:27 阅读更多 →
Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

Pandas DataFrame排序与排名:sort_values和rank的实战区别与用法

在数据分析里,排序和排名几乎是每天都要碰的操作,但很多人用着用着就混了。DataFrame的sort_values和rank,看名字都带“排”,实际干的活完全不同:一个是把整张表重新摆顺序,另一个是给每个数据打分定名次。…

2026/10/18 16:15:27 阅读更多 →

最新新闻

uview-plus密码切换失效的根因排查与正确修复方案

uview-plus密码切换失效的根因排查与正确修复方案

上周给小程序做登录页,密码框要求支持明文密文切换。组件用的uview-plus,照着文档写了几行代码,结果右上角那个小眼睛点了完全没反应,真机上试了好几次,要么纹丝不动,要么闪一下又弹回密文状态。在项目群里…

2026/10/18 17:04:56 阅读更多 →
多传感器融合三条路线深度对比:前融合、特征级与决策级的信息损耗与工程实践

多传感器融合三条路线深度对比:前融合、特征级与决策级的信息损耗与工程实践

我先把话说在前面:多传感器融合这个主题,市面上讲“算法公式”的教程很多,但真正把前融合、特征级融合、决策级融合这三条路线放在同一个项目里拉通对比、还跑过实车数据的人,不多。这篇文章我不会从教科书定义开始,而…

2026/10/18 17:04:56 阅读更多 →
USB不只是采集画面还能输出显示:从UVC到DP Alt Mode的方案与避坑指南

USB不只是采集画面还能输出显示:从UVC到DP Alt Mode的方案与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
数字IC社招UVM面试高频题拆解与工程实践回答策略

数字IC社招UVM面试高频题拆解与工程实践回答策略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
开发板待机功耗超标排查:从芯片睡眠到系统级漏电归因

开发板待机功耗超标排查:从芯片睡眠到系统级漏电归因

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:04:56 阅读更多 →
ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

ROS2小车网页遥控:WebSocket桥接实现低延迟物理控制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 17:03:56 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →