Как мне заняться реверс-инжинирингом настраиваемого протокола игры на основе UDP, используя только Wireshark? - PullRequest
4 голосов
/ 15 сентября 2009

Как мне заняться реверс-инжинирингом настраиваемого протокола игры на основе UDP без ничего кроме Wireshark? Я могу регистрировать кучу трафика, но что тогда? Моя цель - написать подключаемый модуль для Wireshark, который в итоге сможет декодировать игровые команды. Это кажется возможным? С какими проблемами я могу столкнуться? Возможно ли, что команды зашифрованы?

Ответы [ 2 ]

8 голосов
/ 16 сентября 2009

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

Вероятно, лучший способ добиться этого - это делать это методично - не регистрировать «кучу трафика», а вместо этого выполнить одно действие или команду в игре и посмотреть, какие данные отправляются для передачи этого. Затем вы можете посмотреть на пакет и попытаться найти что-нибудь интересное. Обычно вы многому из этого не научитесь, поэтому попробуйте другую команду и сравните новое сообщение с первым. Какие части находятся в одном месте? Какие части переехали? И какие части полностью изменились? Особенно обратите внимание на значение в фиксированной позиции рядом с началом пакета, которое может описывать тип сообщения. Вообще говоря, начало пакета будет общим материалом, таким как заголовок, а последующие части пакета будут специфичны для сообщения. Учтите, что протокол UDP часто имеет свою собственную схему упорядочения или надежности, и что вы можете найти порядковые номера там около начала.

Знание ваших типов данных удобно. Целочисленные значения могут храниться, например, в формате с прямым или обратным порядком байтов. И многие игры отправляют данные в виде значений с плавающей запятой, поэтому обратите внимание на 2 или 3 числа с плавающей запятой подряд, которые могут описывать положение или скорость.

2 голосов
/ 15 сентября 2009

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

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

...