-
Публикации
7 -
Зарегистрирован
-
Посещение
Репутация
2 НейтральнаяО xai
-
Звание
Новичок
-
@ponaromixxx Привет! Снова нужна твоя помощь с обновлением утилиты Aion 2 Text Tools. NCSoft опять выкатили крупное обновление (Version 13 / TW build v77+), и структура контейнеров данных вместе с системой шифрования локализации (L10NString.dat) полностью изменилась. Из-за этого текущая версия инструмента (AO2TextTools.exe) просто падает в краш, так как не может распознать новый заголовок файла. Извлечь текст или скомпилировать его обратно не получается. Ниже подробное описание проблемы и рабочее решение от комьюнити, которое уже добавили в FModel. Описание проблемы: В новом формате файлов локализации в первых 4 байтах теперь установлен идентификатор версии контейнера 2 (uint32). Старый парсер ожидает Version + Ids(FString), поэтому он ошибочно считывает эту двойку как длину строки (string length) и падает с ошибкой. Все последующие данные (payload) зашифрованы с помощью алгоритма AES-ECB (без паддинга / PaddingMode.None). Ключи AES (32 байта), необходимые для дешифровки конкретных файлов, теперь полностью удалены из самих файлов и централизованно хранятся в новом внешнем файле манифеста key_manifest.dat. Для чтения самого key_manifest.dat требуется мастер-ключ, который динамически вычисляется на основе 32-байтового статического массива (KeyManifestMaterial), зашитого в клиенте, с использованием хэш-функции Blake3. Код для реализации: Ребята из комьюнити уже полностью разобрались с этой структурой данных и обновили логику дешифрования. Ты можешь посмотреть все технические изменения и готовые структуры прямо в этом коммите на GitHub: https://github.com/4sval/FModel/commit/2fefbfebb60993373a012bcc6b8e39378c835925 Что нужно сделать: Сможешь обновить функционал AO2TextTools.exe, опираясь на этот коммит, чтобы обе ключевые команды — конвертация (извлечение текста: -E) и обратная компиляция (перепаковка: -C) — поддерживали этот новый алгоритм? Нужно, чтобы инструмент умел автоматически подгружать key_manifest.dat, извлекать из него нужный AES-ключ для L10NString и выполнять как корректное чтение, так и повторное зашифрование с добавлением идентификатора 2 в начало файла. Я прилагаю к сообщению актуальный файл key_manifest.dat и новый зашифрованный L10NString.dat для тестов. https://disk.yandex.com/d/v8KTGZzLumRG-A
-
Rewinding Cadence (归环) ЗБТ Извлечение ассетов и кастомный IL2CPP
xai ответил в тему пользователя xai в Вскрытие игровых ресурсов
Я загрузил файлы игры на Яндекс.Диск, можешь проверить их по этой ссылке? -
Ищу помощь экспертов для извлечения игровых ресурсов (3D-модели, текстуры, музыка и тексты) из клиента недавнего ЗБТ игры Rewinding Cadence (归环). Движок — Unity 2022.3.34f1 / IL2CPP. Несмотря на наличие полного клиента, я столкнулся с проблемой: основные файлы, необходимые для доступа к AssetBundle — GameAssembly.dll и global-metadata.dat, зашифрованы или модифицированы. Предоставляю ссылку на полный клиент (25 ГБ) и зашифрованные файлы для анализа. Ссылка на клиент (25 ГБ): https://disk.yandex.com/d/cGon_cCNwRAoFg GameAssembly.dll https://disk.yandex.com/d/Q3exKSJh3UK4CA global-metadata.dat https://disk.yandex.com/d/VBo4TTsM4hab3g GuiHuan.exe https://disk.yandex.com/d/adLo6SApEGdxIA Имеется полный клиент (25 ГБ), но доступ к AssetBundle заблокирован из-за сложного шифрования основных файлов. Текущий прогресс и технические проблемы: Шифрование бинарников: GameAssembly.dll и global-metadata.dat защищены. GameAssembly.dll не распаковывается стандартным UPX (NotPackedException), что указывает на кастомный протектор. Модификация метаданных: Il2CppDumper и AssetRipper выдают ошибку «struct size mismatch». Это явный признак инъекции «Magic» полей или изменения порядка заголовков. Защита от инъекций: Динамический анализ через frida-il2cpp-bridge невозможен — процесс немедленно завершается при попытке аттача. Без восстановления этих файлов невозможно сопоставить адреса и корректно извлечь данные из AssetBundles. Запрашивается конкретная помощь: Дешифровка бинарника: Помощь в поиске подпрограммы дешифровки в GameAssembly.dll. Восстановление метаданных: Определение смещений или «магических» значений для восстановления структуры заголовка метаданных. Дамп из памяти: Советы по обходу защиты для снятия дампа расшифрованных данных из оперативной памяти. Полезные ссылки и технические ресурсы: IL2CPP Tutorial: Finding loaders for obfuscated global-metadata.dat files https://katyscode.wordpress.com/2021/02/23/il2cpp-finding-obfuscated-global-metadata/ [Оригинал] Идеи и решения двух задач Unity IL2CPP на XYCTF https://bbs.kanxue.com/thread-281560-1.htm [Оригинал] Процесс загрузки GameAssembly.dll через UnityPlayer.dll https://bbs.kanxue.com/thread-285044-1.htm [Оригинал] Введение в реверс-инжиниринг IL2CPP https://bbs.kanxue.com/thread-278275-1.htm Реверс IL2CPP: Дешифровка global-metadata https://cloud.tencent.com/developer/article/2216959 [Оригинал] Полный процесс реверса мобильной игры на Unity (il2cpp + lua) https://bbs.kanxue.com/thread-287964.htm
-
Супер, всё отлично работает! Огромное спасибо.
-
@ponaromixxx Привет! Я обращаюсь к вам по поводу инструмента Aion 2 Text Tools, который вы создавали ранее. К сожалению, структура файлов игры изменилась, и текущая версия инструмента больше не может корректно обрабатывать локализацию. Вот новый файл L10NString.dat https://mega.nz/file/Qk0jVSrC#MBMpmw0I3zHZdyC3oEjsyjpX00BAgOZ0AKz_isb-Uso Текущая проблема: Парсер FAion2L10NFile устарел и не может прочитать файл L10NString.dat. В новых версиях Aion 2 компания NCSoft использует собственный формат с специфическим заголовком (Header) и обфускацией через XOR. Технические подробности здесь: https://github.com/FabianFG/CUE4Parse/issues/329
-
@ponaromixxx Мы получили разработанное Вами приложение Мы подтвердили, что инструмент работает безупречно и позволяет идеально конвертировать файлы формата .dat в .xlsx и текстовые данные. Огромное спасибо! Ваш инструмент просто великолепен! Мы выражаем Вам огромную благодарность за его создание. Благодаря этому, мы наконец-то можем полноценно приступить к работе над локализацией!
-
Запрос инструмента для локализации Aion 2 https://mega.nz/file/NO5TFBrQ#guFIM0NVaP6lnlXUBoEgi0z1nLMSF-XhcCVry7g5l3I Здравствуйте! В российском сообществе был опубликован AES-ключ для Aion 2, что позволило нам извлечь основной файл локализации L10NString.dat Клиент игры содержит языковые файлы для en-US, ko-KR и zh-TW. Также, у нас есть извлеченные данные русского языка, но, поскольку локализация, судя по всему, была автоматизирована с помощью ИИ, могут встречаться некорректные выражения. Мы хотим иметь возможность вручную исправлять их и использовать. Формат этого файла .dat не позволяет открыть его в обычном текстовом редакторе. В настоящее время мы можем использовать FModel для загрузки текста из .dat-файла и извлечения текстовых данных в .dat и .json форматы Основная проблема заключается в том, что мы не можем запаковать обратно переведенный .json-файл в формат .dat Не могли бы вы создать инструмент, аналогичный «WWM Translation Tool», который: Позволял бы напрямую считывать и редактировать текст в .dat-файлах. Либо предоставлял бы возможность конвертации: .dat в CSV/JSON и обратно CSV/JSON в .dat? Реализация такого инструмента значительно упростила бы процесс локализации и позволила бы сообществу исправлять ошибки ИИ-перевода Для контекста: на данный момент только Lagofast публикует данные перевода для Aion 2, и их данные, по всей видимости, основаны на AI-переводе