Блог учасника banru

Основне обговорення і код розшифрування можна подивитися на форумі розробника.

У даній статті розглядається приклад з дешифрування saveindex, на інших файлах дана інструкція поки не перевірялась!

Не забувайте робити бекап всієї папки гри перед експериментами

Алгоритм дешифрування виглядає наступним чином:

  1. Відкриваємо файл.
  2. Видаляємо перші 11 байт (символів)
  3. Декодируем base64
  4. Пропускаємо ще перші 16 байт (символів)
  5. Робимо unzip рядки, через zlib
  6. .
  7. PROFIT

Таким чином у нас вийшов наступний код на PHP:

Зрозуміло все це можна написати в один рядок і замість echo $ a вивести дані в файл для подальшого редагування, що і буде зроблено далі, але поки попрацюємо з такою версією коду, для зручності і попрацюємо через консоль, щоб переконатися, що дешифрування відбувається вірно і вірно вказано шлях до файлу.

Вище озвучений код завадимо в будь-яку папку, для зручності краще всього покласти десь недалеко від збереження. Я поклав у папку

/.steam/steam/userdata/МОЙ_ID/ Запускаємо консоль в папці з цим файлом і виконуємо команду:

На виході отримуємо декодувати дані, типу такого

Тепер можна для зручності записати все це справа в файл:

Назва і розширення файлу можете вибрати будь-який. Я вибрав JSON, тому що дані зберігаються в дуже схожому на JSON форматі.

Тепер можна відкрити збережений файл і ознайомитися. Ви побачите, що там зберігаються налаштування світу і персонажа, наприклад кількістю днів, показники перса, підключення печер. І пізніше можна буде спробувати модифікувати дані. А також, можливо, підключати чужі печери і руїни.

Щоб ви розуміли про що я, ось скрін даних налаштувань:

На даний момент я тільки розібрався з розшифровкою. Експерименти ще не проводив. Трохи пізніше опублікую в цьому записі зворотну збірку файлів. Але хто в темі програмування, думаю і самі напишуть за пару хвилин.

Приступимо до зворотного збирання, але для початку доболнім наш вище описаний скрипт парою рядків коду, а саме запишемо все те, що обрізали в файли, для подальшого впровадження назад:

Тепер скрипт по назад збірці / шифрування:

Ну і тепер, як я вище писав, все кладемо в файли, наприклад decode.php і encode.php і запускаємо з консолі:


Все назад збирається. АЛЕ! Як поки вдалося з'ясувати - в даному файлі можна змінювати кількість прожитих днів - ці дні просто відображаються на слоті збереження, а на саму гру ніяк не впливають. Але можна змінювати характеристики перса, але не вище можливого. Навіть якщо ви поставите там 1000, у грі буде максимально допустимі у персонажа.

PS Чи цікава кому дана тема? Є можливо викласти дешефратор, а потім і шифратор онлайн - воно кому треба? Для віндузятнікі і всіх, хто не знає мови програмування це, як мені здається, було б актуально, якщо це цікаво.

Виявлено використання розширення AdBlock.