gdsdecomp:Godot 逆向工程工具,把游戏 APK 与 PCK 恢复成可编辑工程
gdsdecompGodot 逆向工程工具把游戏 APK 与 PCK 恢复成可编辑工程【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecompgdsdecompGodot RE Tools是一个 Godot 逆向工程模块输入游戏的 APK、PCK 或内嵌 PCK 的 EXE输出反编译的 GDScript 源码、还原为原始格式的导入资源和重建的工程目录覆盖 Godot 2.x 到 4.x。 没有它时的三个困境只剩字节码没有源码。Godot 4.3 起项目可以带编译后的.gdc脚本发布市售 APK 里的 PCK 通常只有字节码而没有.gd。开发者停止维护或源码遗失后游戏逻辑完全黑箱——用 Godot 编辑器打开也只能看到编译脚本无法编辑。版本混乱。GDScript 字节码格式在 2.x、3.x、4.x 各代之间多次变更连4.x内部就至少有两代字节码版本100/1013.1 与 3.2 之间也只是差一个 token 集合。手工读字节码需要精确匹配引擎某个具体 commit 的格式定义这超出了手工分析的能力需要工具把所有历史版本的定义备齐。加密与魔改。商业游戏普遍对 PCK 做 AES-256-CFB 加密部分游戏还会对密钥或加密流程动手脚。没有正确密钥时普通提取工具连读出文件这一步都过不去即便拿到密钥加密方案被改过时照样解不出来。gdsdecomp 的定位就是覆盖这三个环节加载 → 反编译 → 恢复。项目恢复之外它还能创建与修补 PCK改完游戏后产出一份新的 PCK 文件。 工作原理一条从 APK 到可编辑工程的流水线以完整恢复--recover为例数据依次经过五层1. 输入层。一组文件访问实现处理不同输入源utility/file_access_apk.cpp 解析 APK 并在其中定位 PCKutility/file_access_patched_gdre.cpp 处理把 PCK 嵌入二进制内部的 EXE普通 PCK 直接读取。--recover也接受已经解出来的工程目录。2. 解密层。crypto/ 实现 Godot 标准 AES-256-CFB 解密文件头是魔数 MD5 长度 IV的固定结构解密后校验 MD5。非标准加密有专门扩展点写一个继承CustomDecryptor、实现_parse_and_decrypt()的 GDScript 脚本通过--custom-decryption-script传入据 docs/custom_decryptors.md 所述脚本内部可在 AES / Camellia / Aria 三种解密上下文之间选择。3. 兼容层。compat/ 负责跨版本资源格式差异。ResourceCompatLoader 同时支持二进制.res/.scn、3.x 的.obdb与文本.tres/.tscn三种资源存储方式Variant 的编解码也做了版本兼容3.x 的资源因此能在 4.x 引擎里被读取。4. 反编译层。bytecode/ 是项目的核心资产。每个字节码版本对应一组以引擎 commit 哈希命名的 .cpp/.h 文件——bytecode_1a36141是 3.1 的收尾版本bytecode_77af6ca是 4.3 首个带编译模式的版本。全部定义由 bytecode_generator.py 从一张 commit 对照表生成完整对照表见 BYTECODE_HISTORY.md。反编译器按 commit 哈希或版本号选择匹配的定义无需人工辨识。5. 输出层。exporters/ 按类型分发gdscript_exporter 把.gdc反编译回.gd贴图、ogg 音频、字体、spine 各有专用导出器C# 项目由 godot-mono-decomp/ 完成把 DLL 反编译回.cs以 .NET 原生 AOT 库形式交付。helpers/ 里的一组特性探测脚本has_*.gd则用于给引擎版本打指纹恢复报告里会直接告诉该用哪个编辑器版本打开工程。 动手实战三种入口完成一次恢复环境准备获取途径有三条Windows 用 Scoop 安装从项目 releases 页取最新构建自编译仓库放到 Godot 的modules/gdsdecomp下需要 rustup 与 .NET 10 SDK且 README 要求使用项目方指定的 Godot fork 分支见 README 的 Requirements 一节scoop bucket add games scoop install gdsdecompgit clone https://gitcode.com/GitHub_Trending/gd/gdsdecomp modules/gdsdecomp构建时 SCons 会自动把 patches/ 下的补丁应用到引擎源码把工具挂进引擎的命令行解析流程该过程幂等重新执行 scons 不会重复打补丁。图形界面拖进去就恢复运行独立版后在 RE Tools 菜单点 Recover project...或者直接把 PCK/EXE 拖进窗口。随后弹出 PCK explorer勾选要处理的文件选择 Full Recovery完整恢复含反编译与资源还原或 Extract only仅原样提取设置输出目录后点 Extract。命令行适合批处理与服务器环境完整恢复一条命令gdre_tools --headless --recovergame.pck --outputrecovered--output缺省时输出到名字_extracted目录加--scripts-only只提取脚本先做 PCK 文件清单预览、不改动任何内容gdre_tools --headless --list-filesgame.pck手头已有.gdc文件、只想做 GDScript 反编译时gdre_tools --headless --decompilescripts/*.gdc --outputdecompiled字节码版本默认自动识别不准时补--bytecode4.3.0或 commit 哈希。源码编译出的二进制也可以独立调用README 以 Linux 构建为例bin/godot.linuxbsd.template_debug.x86_64.llvm --headless \ --pathmodules/gdsdecomp/standalone --recovergame.pck 进阶玩法加密 PCK 的解密。场景拿到一个加密的 PCK 和它的密钥。gdre_tools --headless --recoverencrypted.pck --key64位十六进制密钥解密发生在文件读取层后续恢复流程与明文完全一致。密钥不生效时据项目文档所述多数情况是游戏代码在加载后对密钥做了变换此时写自定义解密脚本用--custom-decryption-script加载而不是反复怀疑工具。应对特殊引擎构建。场景游戏使用魔改过的 Godot反编译报错或产出乱码。先用--dump-bytecode-versionsDIR把内置定义导出为 JSON以它为模板修正偏移与 token 集合再用--load-custom-bytecodeJSON加载。效果反编译器改用你提供的定义不再受限于工具内置的版本集。修补游戏并写回 PCK。场景恢复工程后改了脚本要写回原 PCK 产出新版本。gdre_tools --headless --pck-patchoriginal.pck \ --patch-file./new.gdres://scripts/new.gd --outputpatched.pck--patch-file可重复一行一个文件左侧本地路径、右侧 PCK 内res://路径配合--include/--exclude控制原 PCK 中保留哪些文件--embed可把结果写进 EXE。只改翻译时用--patch-translationsCSVSRC_PATH与--pck-patch组合--locales指定语言。反向操作是--pck-createDIR从目录构建全新 PCK需指定--pck-version0/1/2与--pck-engine-version。文本与二进制资源互转。场景只想查看某个.scn/.res的内容不做完整项目恢复。gdre_tools --headless --bin-to-txtscene.scn--txt-to-bin为反向转换两者都可重复传参批处理多个文件。 排错与调优Q恢复完报告提示 Use Godot editor version 3.4 to edit the projectA这是工具检测到的原游戏引擎版本用同版本编辑器打开工程即可。若游戏用的是自定义引擎构建报告会注明该项检测尚未实现——此时改用游戏原始二进制作为导出模板来打开工程。Q解密总是失败A据 docs/custom_decryptors.md绝大多数解密问题出在密钥本身——游戏可能在加载密钥后做了置换直接从二进制提取的密钥未必可用。先确认密钥再用反汇编器核对加密方案是否非标准最后才考虑自定义解密脚本。Q出现 MD5 校验错误A说明文件与头部记录不符通常是因为文件被修补过或 PCK 损坏。--ignore-checksum-errors容忍错误继续提取--skip-checksum-check完全跳过校验数据可信度要求高时不要跳过。Q反编译产物残缺或 token 不对A字节码版本没匹配上。先用--list-bytecode-versions查看可用版本恢复流程用--force-bytecode-version版本号或commit哈希独立反编译用--bytecode。注意 commit 哈希比版本号更精确——同一版本号可能横跨多个字节码修订如 4.4 与 4.5 同为 101 版但 token 集合不同。Q报告里一批文件标着 Not convertedA已知限制2.x 模型dae、fbx、glb等与 GDNative/GDExtension 脚本暂不支持转换见 README 的 Limitations 一节这些文件会以二进制形式落盘但不会还原成源码。规模与速度建议大工程先--list-files估算体量再用--include缩小范围如只恢复脚本--includeres://**/*.gdc或--scripts-only快速拿脚本include/exclude 的 glob 必须以res://或user://为根带通配符但不含目录的写法如*.gdc会自动视为递归匹配 生态与参与插件系统独立版 GUI 内置 plugin_manager/支持 GitHub、GitLab、Codeberg 等多个代码托管源插件版本有本地缓存与静态版本缓存prepop_cache.py加速。版本跟踪项目以加表再生成的方式跟进引擎——每个新的字节码修订记入 commit 表由 bytecode_generator.py 重新生成全部定义BYTECODE_HISTORY.md 是这张表的人类可读索引。新引擎版本发布后这里是第一落点。测试tests/ 内含跨 2.x/3.x/4.x 的回归夹具.gdc字节码、.res资源、完整测试工程helpers/ 的探测脚本同时充当引擎特性指纹与测试样本。社区据项目文档所述作者提供 Discord 服务器作为支持与讨论渠道仓库采用 MIT 许可贡献可以从新增一个字节码版本或新增一个导出器这类模块级工作切入。这套工具本质上是把 Godot 的格式知识——逐 commit、逐格式——固化成可维护的代码。只要引擎继续演进、游戏继续以二进制形态发布这份格式知识库加反编译流水线的长期价值就不会消失。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Gemma-4 文本编码器深潜:ltx-2.5-mlx-q8 的 48 层滑动注意力、connector 与 128 个可学习寄存器

Gemma-4 文本编码器深潜:ltx-2.5-mlx-q8 的 48 层滑动注意力、connector 与 128 个可学习寄存器

人工智能大模型基础模型模型量化本地部署媒体生成音频视频 【免费下载链接】ltx-2.5-mlx-q8 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/ltx-2.5-mlx-q8 点击查看 免费下载 ltx-2.5-mlx-q8 是面向 Apple Silicon 的 LTX-2.5 音视频生成模型组件树…

2026/10/18 1:47:51 阅读更多 →
让AI写出符合团队规范的代码,我靠一段System Prompt搞定

让AI写出符合团队规范的代码,我靠一段System Prompt搞定

让AI写出符合团队规范的代码,我靠一段System Prompt搞定一个PR的修改意见从15条降到2条,代码风格从"四个人的写法"变成"同一个人写的"一、一个PR改了三次,全是因为风格问题 上个月组里来了个新项目,四个前端各…

2026/10/18 1:47:51 阅读更多 →
S905L3B 刷机指南:把 1GB 内存的 Armbian 机顶盒改造成微型服务器

S905L3B 刷机指南:把 1GB 内存的 Armbian 机顶盒改造成微型服务器

S905L3B 刷机指南:把 1GB 内存的 Armbian 机顶盒改造成微型服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905…

2026/10/18 1:47:51 阅读更多 →

最新新闻

基于5777张图片的垃圾检测数据集实战:六大场景与模型训练指南

基于5777张图片的垃圾检测数据集实战:六大场景与模型训练指南

垃圾检测在计算机视觉里是个看着简单、做起来相当磨人的细分方向。说它简单,是因为目标就是“找出画面里的垃圾”;说它磨人,是因为垃圾这东西没有固定形状、没有统一颜色、尺度跨度极大——一个矿泉水瓶和一个建筑垃圾堆,在特征层…

2026/10/18 2:39:02 阅读更多 →
Unity 性能优化:减少透明物体带来的开销

Unity 性能优化:减少透明物体带来的开销

/* 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 2:39:02 阅读更多 →
Unity Timeline检视面板完全指南:轨道、剪辑与混合技巧详解

Unity Timeline检视面板完全指南:轨道、剪辑与混合技巧详解

做Timeline内容这几年,如果让我选一个“最容易被新手忽略、却又最值得花时间研究”的地方,我一定选检视面板。前面几篇讲了Timeline怎么建、轨道怎么摆、素材怎么拖,很多同学以为会这些就够用了,可一旦开始调细节,比如…

2026/10/18 2:39:02 阅读更多 →
UE5 C++实现自动开关门:委托绑定与TimeLine驱动全解析

UE5 C++实现自动开关门:委托绑定与TimeLine驱动全解析

做UE项目时接了个开关门的功能,需求本身不复杂:玩家走到门口,门自动打开,离开后自动关闭。但就是这么一个“看起来不难”的功能,在C里却牵扯出两个容易卡壳的点——一个是TimeLine组件的驱动方式,另一个是盒…

2026/10/18 2:39:02 阅读更多 →
纯CSS打造黑胶唱片机:材质、动画与性能优化全攻略

纯CSS打造黑胶唱片机:材质、动画与性能优化全攻略

1. 为什么说CSS不是“改样式”的活,而是视觉魔法早些年我刚入行的时候,团队里流行一句话:“CSS不就是调调颜色、改改间距吗?”说这话的人,后来基本都在某个深夜被一段CSS动画折磨到怀疑人生。这个被无数人低估的语言&a…

2026/10/18 2:39:02 阅读更多 →
Deep Agents框架:AI代理核心任务规划与分解实战解析

Deep Agents框架:AI代理核心任务规划与分解实战解析

先聊个我最近遇到的典型场景。某次我给一个自己搭的Agent下达任务:“帮我整理本周行业资讯,输出一份简报”。结果它整整回复了八百字,格式工整、措辞得体,可仔细一看,全是通用建议——没有真正的资讯来源,没…

2026/10/18 2:38:02 阅读更多 →

日新闻

基于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/16 14:23:36 阅读更多 →