资讯动态

Godot PCK 反编译的三个卡点:源码恢复、加密处理与批量命令

发布时间:2026/10/18 1:39:41 来源:尧图企业网站定制
Godot PCK 反编译的三个卡点源码恢复、加密处理与批量命令【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp手里只有一个.pck想做 Godot PCK 反编译、读出里面的 GDScript 源码第一步常常就卡住。GDRE Tools仓库gdsdecomp是一套 Godot 逆向工具把.gdc字节码还原成.gd把 PCK、APK 或内嵌 EXE 还原成能在编辑器里打开的项目覆盖 Godot 4.x、3.x、2.x 三代。这篇不写安装和界面通识只拆最常卡住的三个点——源码怎么恢复、加密怎么处理、批量怎么跑。一、只剩编译产物时源码怎么恢复完整恢复full recovery是这套工具的核心动作。它做五件事从 APK/PCK/EXE 读资源、反编译全部 GDScript、还原原始project文件、把导入资源转回导入格式、把自动转成二进制的资源转回文本格式最后重建插件配置文件。也就是说你丢进去一个编译产物出来的是一个带源码的项目目录而不是一堆散文件。GUI 里从 RE Tools 菜单选 Recover project...或直接拖一个 PCK/EXE 进窗口。命令行则是无头模式一条命令跑完整个恢复gdre_tools --headless --recoverGAME_PCK/EXE/APK --outputDIR--output不写时默认落到名称_extracted目录。恢复结束后看日志它会列出检测到的引擎版本并建议用同一版 Godot 去打开项目。版本匹配是恢复能不能成功的关键。各代字节码的解析逻辑放在bytecode/目录里、按引擎提交号命名如bytecode_77af6ca对应 4.3。检测失败时可以手动指认见第三节。二、PCK 是加密的密钥和自定义解密怎么给绝大多数加密项目走的是标准方案正确密钥就能解。标准方案下用--key传 64 位十六进制字符串即可形如000102...1F。拿不准密钥时先用密钥提取工具确认再核对游戏是否真的改了加密方案——多数解不开其实是密钥不对而不是方案不同。只有确认它用了非标准加密AES-256-CFB、Camellia-256-CFB、Aria-256-CFB 之外的自研方案才需要写自定义解密脚本。脚本继承CustomDecryptor类实现_parse_and_decrypt()方法仓库里gdre_standard_encryption.gd给了标准方案的参照实现完整字段说明见 docs/custom_decryptors.md。写好后把脚本路径交给恢复流程gdre_tools --headless --recoverPCK --custom-decryption-script脚本路径 --outputDIR脚本里解密时可以用工具附带的加密上下文AESContextGDRE、CamelliaContext、AriaContext它们支持 CFB 模式行为与引擎自带的AESContext一致。一个提醒如果要分发这个解密脚本别把密钥写死在脚本里。三、只想处理部分文件或跑批量命令行怎么组织完整恢复是全要但经常你只想要脚本或只要某个目录。--scripts-only让它只提取/恢复脚本--include和--exclude用 glob 过滤。过滤规则有两条要记牢glob 以res://为根不写根就默认补res://用**做递归。例如res://**/*.gdc会匹配根目录和任意子目录里的.gdc而res://*.gdc只匹配根目录。gdre_tools --headless --recoverPCK --includeres://scripts/**/*.gdc --excluderes://assets/**/*.ogg这里还有个容易踩的点include/exclude 只匹配 PCK 里真实存在的文件。你写res://main.gd不会命中因为包里存的是编译后的res://main.gdc要按编译后的扩展名写。批量跑时如果自动检测选错了字节码版本用--list-bytecode-versions看有哪些可用版本再用--force-bytecode-version指认。它接受引擎提交号或版本号两种写法。注意 4.x 的编译模式从 4.3 才开始有字节码 1004.5 是 1014.0 到 4.2 的 GDScript 并没有编译模式自然也没有.gdc可解。gdre_tools --headless --decompileGDC --bytecode4.3.0 gdre_tools --headless --recoverPCK --force-bytecode-versionf3f05dc跑完看恢复日志它会给出反编译成败统计、资源转换结果以及检测到的引擎版本方便你判断是不是版本没对上。先跑一次最小恢复再谈加密和批量有两条已知边界2.x 的模型dae、fbx、glb等和 GDNative/GDExtension 脚本目前没有转换支持。所以别一上来就冲全量——先用一条--recover加--scripts-only跑一遍最小恢复确认日志里报的版本和你手上 Godot 一致再决定要不要补密钥、要不要写自定义解密脚本。日志里的版本提示比任何猜测都可靠。【免费下载链接】gdsdecompGodot reverse engineering tools项目地址: https://gitcode.com/GitHub_Trending/gd/gdsdecomp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑