Как можно расшифровать данные (payload) мини-игры Hexa Puzzle в игре Hamster Kombat?

Мне нужно разобраться, какие данные передаются при запуске новой игры в Hamster Kombat. 

Вот пример декодирования строки на Python: 
<pre><code class="python">import base64

encoded_string = "MDI2MDIzMjkzOXw0OTA3MjIxMTh8VGlsZXN8MzQ0OTUxMzExNHxCeTZwbm94c2FwUEhVYk1GNVpveEhIdGlPMkxyRExTcDZtVnVrRmZBRkIwPQ=="

raw = base64.b64decode(encoded_string).decode('utf8')
values = raw.split('|')

print(values)</code></pre>

В результате декодирования получается такая строка: 
<pre><code class="python">['0260232939', '490722118', 'Tiles', '3449513114', 'By6pnoxsapPHUbMF5ZoxHHtiO2LrDLSp6mVukFfAFB0=']</code></pre>
*Это разделённые для удобства значения.

Интересно следующее:
1. Первое значение — это неизвестное число, которое значительно варьируется при разных запусках.
2. Второе значение — идентификатор аккаунта.
3. Третье значение — название мини-игры.
4. Четвёртое значение — это второе неизвестное число, также изменяется при каждом запуске, различия касаются в основном последних 5-6 цифр.
5. Пятое значение — это зашифрованный код, который напоминает base64. При его расшифровке получается байтовая строка, меняющаяся с каждым запуском игры.

Есть ли у вас идеи о том, что могут представлять собой элементы 1, 4 и 5?
  • 27 августа 2024 г. 17:04
Ответы на вопрос 2
Чтобы лучше понять значения из декодированной строки и их возможные назначения, давайте проанализируем каждое из них.

1. **Первое значение (неизвестное число)**:
   - Это число, вероятно, служит для идентификации определенного момента или состояния игры. Возможно, это уникальный идентификатор сессии или счетчик, который обновляется при каждом новом запуске игры. Он может использоваться для логирования или отслеживания хода игры. Чтобы подтвердить это, можно попробовать сохранить это значение при нескольких запусках и понаблюдать за его изменениями.

2. **Второе значение (идентификатор аккаунта)**:
   - Это значение явно указывает на уникальный идентификатор игрока или учетной записи. Это обычная практика для игр, чтобы отслеживать прогресс игрока, а также для систем хранения данных.

3. **Третье значение (название мини-игры)**:
   - Это значение представляет собой название конкретной мини-игры. У него более или менее фиксированная природа в том смысле, что оно не подлежит изменению для каждой сессии, если идет речь о конкретной игре.

4. **Четвёртое значение (второе неизвестное число)**:
   - Это значение, как и первое, может служить разным целям. Его изменение может указывать на состояние уровня, текущий прогресс в игре или даже может быть просто случайным числом, привязанным к конкретному экземпляру игры. Поведение этого значения при разных запусках игры может дать больше информации о его роли.

5. **Пятое значение (зашифрованный код)**:
   - Вероятно, это зашифрованное или закодированное состояние игры. Оно может содержать информацию о текущем состоянии игрока, например, положение фигур на поле, текущее состояние игры, количество оставшихся попыток и т.д. Использование base64 подразумевает, что это информация может быть двоичной или даже сериализованной. Для расшифровки этого значения, возможно, потребуется дополнительная информация о методах шифрования или сериализации, использованных в игре.

### Что дальше?

1. **Тестирование**: Если у вас есть возможность, попробуйте провести несколько запусков игры и записать все значения для выявления закономерностей и возможных зависимостей.

2. **Анализ пятых значений**: Попробуйте расшифровать это значение различными способами (например, попробуйте его представить как JSON или другой формат данных). Посмотрите, сможете ли вы извлечь какое-то содержимое, относящееся к состоянию игры.

3. **Обратное проектирование**: Если у вас есть доступ к клиентскому коду игры, возможно, можно найти логику, которая генерирует эти значения и использует их. Инструменты для обратного проектирования (если используются ненадежные библиотеки) могут помочь прояснить, как работает код.

Понимание структуры и логики этих данных может помочь вам лучше справляться с мини-играми и их состояниями в Hamster Kombat.
Даже если вы расшифруете и хакнете игру, то ничего, кроме виртуальных хомяков не выиграете.
Похожие вопросы