Автоматизация реверс-инжиниринга Godot
Появилась утилита Gore (Godot Reverse Engineering toolkit), которая полностью автоматизирует процесс извлечения исходных данных из готовых игр на движке Godot. В отличие от предыдущих решений, требующих ручного ввода ключей или использования нескольких программ, Gore выполняет весь цикл в одну команду: от поиска игры до открытия проекта в редакторе Godot.
Инструмент работает с любыми форматами: standalone .pck файлы, самодостаточные .exe или .x86_64 бинарники, а также архивы, встроенные в исполняемый файл. Ключевая особенность — автоматическое восстановление ключа шифрования без участия пользователя.
Сравнение с существующими решениями
Ранее процесс восстановления проекта состоял из двух сложных этапов: распаковки/дешифровки и рекавери проекта. Существующие инструменты покрывали только часть задач. Gore объединяет их функционал, устраняя главное «узкое горлышко» — необходимость вручную искать 64-символьный HEX-ключ.
| Инструмент | Распаковка | Дешифровка | Рекавери проекта | Авто-поиск ключа |
|---|---|---|---|---|
| GDRE Tools | Да | Да (требует ключ) | Да | Нет |
| Нет | Нет | Нет | Да (только Windows PE / WASM) | |
| GodotPCKExplorer | Да | Да (требует ключ) | Нет | Нет (медленный сканер) |
| Gore | Да | Да | Да | Да (автоматически) |
Как работает поиск ключа
Механизм Gore использует сам .pck архив как «оракул» для проверки правильности ключа. Алгоритм работает следующим образом:
- Брутфорс через структуру: Утилита сканирует бинарный файл, пробуя каждый 32-байтовый блок как потенциальный ключ. Если ключ верный, расшифрованный заголовок таблицы файлов содержит валидные пути (например,
res://.import/...), а не «шум». - Верификация: Подозрительные кандидаты подтверждаются полным расшифрованием таблицы файлов и сравнением MD5-хеша. Это исключает ложные срабатывания.
- Многопоточность: Сканирование разбивается на чанки по 1 МБ и выполняется на всех доступных ядрах, что позволяет обрабатывать гигабайтные файлы за секунды.
- Резервные варианты: Если ключ не найден в бинарнике, Gore пробует словари паролей (преобразуя их через MD5, как делает сам Godot) или анализирует дампы памяти через флаг
--scan.
Практическое применение и установка
После извлечения данных Gore запускает GDRE Tools (который устанавливается автоматически через gore setup) для декомпиляции GDScript, конвертации текстур и генерации project.godot. Утилита также умеет подгружать нужные версии редактора Godot (включая .NET сборки для C# игр) и восстанавливать нативные библиотеки (FMOD, Spine, Sentry).
Базовые команды:
gore info game.pck— просмотр метаданных без распаковки.gore recover game.exe -o ./project— полное восстановление проекта.gore key game.pck— вывод только ключа шифрования.
Установка доступна через бинарные релизы для Linux, macOS и Windows (x86_64/arm64) или через cargo install для разработчиков на Rust (требуется версия 1.74+).
Источник: Github ↗
