- 161
- 49
Здравствуйте!
Недавно я опубликовал IDB Black Russia (https://www.blast.hk/threads/229993/). В этой теме мы проведем анализ процесса подключения к серверу.
Для более удобного анализа трафика при подключении будем использовать вайршарк, при подключении клиент отправляет серверу пакет длинной 9 байт с айди 27. Содержимое пакета: 27, 4, 5, 7, 6, 21, 242, 134, 12. Но, это не статическое содержание, байты 4 5 6 7 и 242 134 12 21 постоянно меняются местами, при этом ответ со стороны сервера всегда один.
На что сервер отвечает клиенту 29 пакетом с содержимым: 224, 192, 0, 10, 198, 186, 29
После чего уже начинается стандартное подключение.
Но конечно же с другими айди пакетов.
И так, после этого клиент отправляет 12 пакет(в Black Russia имеет айди 32), но тут не все так просто. У BlackRussia пакет authkey не совсем простой, в нем происходит отправка дополнительного хэша.
Переместимся в либу для просмотра, как мы видим, в структуре пакета authkey присутствует вызов функции "B_hash" в ней генерируется сам хэш.
И так, сама функция генерации хэша.
Генерация тут происходит на основе входной строки, сама входная строка: "source".
Я решил написать код на С++ который сгенерирует хэш с такой же логикой как и в либе на основе этой самой входной строки.
Сама функция генерации хэша на С++. И сам сгенерированный хэш: 19 39 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c4 7 1 3 0 0 0 0 0 0 0 0 0 0 0 0
Перейдем к самповскому крипту.
Как мы видим в нем изменена контрольная сумма и порт, также как и таблица шифрования, это также необходимо изменить при подключении, в противном же случае подключения просто не будет.
Теперь перейдем к завершению этапа подключения.
На конце наш ждет своего рода ClientJoin который отправляется через NPC_Join(54) в ответ на 34 пакет, в нем вам необходимо отправлять измененный ChallengeAnswer(0xFDA), и текущую версию билда(versionCode), после чего Black Russia будет считать вас за мобильного игрока.
Ну и на выходе получаем заветный результат:
Недавно я опубликовал IDB Black Russia (https://www.blast.hk/threads/229993/). В этой теме мы проведем анализ процесса подключения к серверу.
Для более удобного анализа трафика при подключении будем использовать вайршарк, при подключении клиент отправляет серверу пакет длинной 9 байт с айди 27. Содержимое пакета: 27, 4, 5, 7, 6, 21, 242, 134, 12. Но, это не статическое содержание, байты 4 5 6 7 и 242 134 12 21 постоянно меняются местами, при этом ответ со стороны сервера всегда один.
На что сервер отвечает клиенту 29 пакетом с содержимым: 224, 192, 0, 10, 198, 186, 29
После чего уже начинается стандартное подключение.
Но конечно же с другими айди пакетов.
И так, после этого клиент отправляет 12 пакет(в Black Russia имеет айди 32), но тут не все так просто. У BlackRussia пакет authkey не совсем простой, в нем происходит отправка дополнительного хэша.
Переместимся в либу для просмотра, как мы видим, в структуре пакета authkey присутствует вызов функции "B_hash" в ней генерируется сам хэш.
И так, сама функция генерации хэша.
Генерация тут происходит на основе входной строки, сама входная строка: "source".
Я решил написать код на С++ который сгенерирует хэш с такой же логикой как и в либе на основе этой самой входной строки.
Сама функция генерации хэша на С++. И сам сгенерированный хэш: 19 39 c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 c4 7 1 3 0 0 0 0 0 0 0 0 0 0 0 0
Перейдем к самповскому крипту.
Как мы видим в нем изменена контрольная сумма и порт, также как и таблица шифрования, это также необходимо изменить при подключении, в противном же случае подключения просто не будет.
Теперь перейдем к завершению этапа подключения.
На конце наш ждет своего рода ClientJoin который отправляется через NPC_Join(54) в ответ на 34 пакет, в нем вам необходимо отправлять измененный ChallengeAnswer(0xFDA), и текущую версию билда(versionCode), после чего Black Russia будет считать вас за мобильного игрока.
Ну и на выходе получаем заветный результат:
Последнее редактирование: