Задачи по анализу сетевого трафика онлайн игры

Необходимо провести анализ сетевого трафика старой онлайн игры Warspear Online ( warspear-online.com ), понять структуру отправляемых и получаемых данных. На сайте можно скачать клиент для любой платформы. В windows клиенте код прошел слабую обфускацию и все методы названы произвольным набором символов. Мы нашли старый андроид клиент, где разработчики, быть может, забыли обфусцировать код и поэтому оригинальные названия методов в .so библиотеке сохранились. У нас есть декомпилированная (через IDA) c++ библиотека этого старого android-клиента. Это упрощает задачу, т.к. каждый пакет формируется отдельной функцией. Также мы смогли распаковать и расшифровать файл с игровыми ресурсами.

Сейчас, чтобы совершить любое действие в игре, нам необходимо запустить официальный клиент, подключить к нему написанную нашей командой dll и уже через неё вызывать ту или иную функцию. Мы хотим ещё лучше автоматизировать некоторые игровые процессы, убрав оф. клиент, и «общаться» с сервером напрямую. От исполнителя требуется только анализ сетевого трафика, программу с имитацией игрового клиента мы будем писать уже сами. Под анализом трафика понимается соотнесение блоков данных в запросе/ответе с содержимым игры или параметрами устройства. Например:

данные запроса (набор байт):
01 02 03 04

результат анализа:
тип запроса и его характеристики
01 - тип запроса
02 - тип ОС
03 - мажорная версия клиента
04 - минорная версия

Игра старая, довольно простая и очень непохожа на большинство игр, рекомендую установить ее, чтобы точно понять, о чем будет идти речь дальше. Работа будет разделена на несколько этапов.

Этап 1. Анализ создания игрового аккаунта и авторизация.
Нам нужно понять структуру всех запросов-ответов к серверу в процессе создания нового аккаунта, чтобы мы могли полностью повторить их: сохранить логины и пароли (их хеш-суммы) в таблицу и авторизоваться по любому из них, отправив нужные нам данные об устройстве и прочую информацию, что отправляет оригинальный клиент. Если приложение, вместе с тем, отправляет или получает данные, не влияющие на процессы этого этапа (например, аналитика AppsFlyer), их можно особо не анализировать: мы можем отправлять их копии просто для имитации оригинальной программы или не отправлять вовсе.

Этап 2. Создание нового персонажа и выбор имеющегося для подключения к игровому серверу.
После авторизации происходит процесс выбора/создания персонажа. Необходимо проанализировать сетевой трафик этих процессов так, чтобы мы могли:
1. получить список имеющихся персонажей на аккаунте и информацию о них (id, никнейм, уровень и т.д.)
2. создавать нового персонажа с выбранными начальными характеристиками (никнейм, игровой сервер и т.д.)
3. подключиться к игровому серверу за выбранного персонажа. Необходимо только установить соединение так, чтобы персонаж появился в игровом мире. Дальшейший анализ игровых событий на сервере будет происходить в следующих этапах задачи.
Нам нужно понять, что именно отправляет и получает клиент с точностью до каждого блока байт.

Читайте на 123ru.net