@Derfirm
Noname Developer.

Где и как искать описания современного Battlenet протокола?

Существует несколько интересных проектов, которые повторяют работу игровых клиентов и/или серверов например https://bnetdocs.org/welcome, что в целом рабочий вариант, но Близзард сейчас использует протобаф и собирать байты вручную не самое приятное и долгоиграющие решение. Также нагугливаются проекты, которые эмулируют клиент херстоуна или Диабло, создавая игровую сессию и какие-то простые действия, вроде проверки активных друзей в игре.
Мне хочется понять, по какому флоу и какие данные отправляет например Blizzard Agent (до запуска какой либо игры) или мобильный клиент. Как происходит авторизация, обмен сообщениями, проверка списка друзей и остальные фишки.
Основная сложность в том, что создаётся TCP соединение с апгрейдом до tls1.3 и как-то расшифровать траффик крайне сложно, софт вроде MITM не особо работает с отличным от HTTP/HTTPS протоколом.
Ищу любые подсказки, ссылки, которые позволяют понять как прикинуться мобильным клиентом для начала.
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 1
TrueBers
@TrueBers
Гуглю за еду
MITM не особо работает с отличным от HTTP/HTTPS протоколом
HTTPS и TLS это одно и то же, а в TLS ничего нового не придумано, и mitm как был рабочим, таким и остаётся.

Чтобы осуществить его, нужно отвязать клиент от Certificate Pinning. Для этого нужно провести реверс-инжиниринг приложения, найти место, где происходит проверка подписи сертификата и запатчить место статически либо динамически.

Близзард сейчас использует протобаф и собирать байты вручную не самое приятное и долгоиграющие решение.
Протобаф это наоборот же облегчение. Стандартный протокол проще и быстрее реверсить, чем какой-то кастомный непонятный костыль. Протобаф даже эвристически легко вычленить и разобрать из просто мусорного дампа памяти, несмотря уже на то, что относительно несложно написать скрипт, который из готового кода генерирует схему по определённым паттернам.

Другое дело, что клиент батлнета может иметь какую-то защиту от эмуляции. Например слать движения мыши, нажатия клавиатуры, идентификаторы железа, какую-то иную телеметрию, проверив и не найдя которую, может заподозрить эмуляцию и выдать бан.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы