Вероятно, вы можете сделать несколько разумных предположений, которые должны значительно упростить вашу задачу. Тем не менее, чтобы наилучшим образом использовать их, вам, вероятно, понадобится больше комфорта при свернутом программировании рукавов, чем кажется.
Во-первых, можно с уверенностью сказать, что используемое ими шифрование относится к одной из трех категорий:
- нет
- Сырный
- Гораздо лучше, чем вы, вероятно, взломать
Вероятность среднего случая очень мала.
Далее, можно с уверенностью предположить, что пакеты зашифрованы / расшифрованы близко к краю программы (прямо при входе, непосредственно перед выходом) и что основная часть игры обрабатывает их в расшифрованном виде.
Наконец, протокол, который они используют, скорее всего, состоит из
- ASCII с блоками данных
- бинарный липучка
Так что сделайте небольшой анализ пакета с картой, установленной в случайном режиме для незашифрованного ascii. Если вы видите что-то, отлично, вы впереди игры. Но если вы не отказываетесь от всей идеи постукивания, а вместо этого начинаете следовать коду, который возвращается после отправки данных путем прерывания и перехода в отладчик. Представьте, что один или три внешних уровня будут стандартными сетевыми компонентами, затем появится уровень шифрования, и, помимо этого, огромная масса элементов, имеющих дело с незашифрованным протоколом.
Вы сможете достичь этого за час, если вам жарко, по выходным, если вы достаточно умелы, мотивированы и старательны, и никогда, если вы безнадежны. Но в принципе возможно (и, несомненно, намного проще на практике) сделать это таким образом.
Как только вы попадаете туда, где появляется нечто, похожее на незашифрованную липучку, запутывается и выходит запутанная форма, , затем начинают беспокоиться о том, что это значит.
- MarkusQ