Обращаюсь к знатокам, есть сервер t\h\e\o\n\l\i\n\e на нем после недавнего времени обновили защиту, суть защиты в следующем: Все исходящие пакеты с клиента идущие на гейм сервер (за исключением первого пакета ProtocolVersion и пакета CharacterSelect) имеют ID не соответствующий им по описанию протокола. ID пакетов меняются динамически после реконекта к гейм серверу. Возникает ощущение что сервер передает какой-либо код, который складывается с настоящим ID пакета. Кто может подсказать варианты обхода данной защиты? Защита реализована в самом клиенте, без использования стороннего ПО, пакеты с гейм сервера идут как обычно со стандартными ID "внутринности" исходящих пакетов расшифровываются нормально, загадкой остается только ID. Для наглядности выкладываю один из логов пакетов, пакеты уже расшифрованы.
ProtocolVersion
PHP код:
0E 53 00 00 00 09 07 54 56 03 09 0B 01 07 02 54 54 56 07 00 02 55 56 00 51 00 53 57 04 07 55 08 54 01 07 01 53 00 56 55 56 01 06 05 04 51 03 08 51 08 51 56 04 54 06 55 08 02 09 51 56 01 53 06 55 04 53 00 56 56 53 01 09 02 09 01 51 54 51 09 55 56 09 03 04 07 05 55 04 06 55 04 06 09 04 51 01 08 08 06 05 52 06 04 01 07 54 03 06 52 55 06 55 55 51 01 02 04 54 03 55 54 01 57 51 55 05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52 07 01 54 00 03 05 05 08 06 05 05 06 03 00 0D 08 01 07 09 03 51 03 07 53 09 51 06 07 54 0A 50 56 02 52 04 05 55 51 02 53 00 08 54 04 52 56 06 02 09 00 08 03 53 56 01 05 00 55 06 08 56 04 0D 06 07 52 06 07 04 0A 06 01 04 54 04 00 05 02 04 54 00 09 52 53 05 04 01 04 05 05 01 52 51 52 0D 06 51 08 09 54 53 00 0D 01 02 03 54 53 01 05 03 08 56 54 07 02 54 0B 06 11 5D 1F 60
KeyPacket
PHP код:
2E 01 3B 15 8E 49 C9 14 9C A3 01 00 00 00 05 00 00 00 00 67 87 FA 6A
AuthLogin (тут странности начинаются, ID пакета RequestAllyInfo)
PHP код:
2E 4D 00 61 00 6C 00 6F 00 6A 00 53 00 6F 00 6E 00 67 00 00 00 F5 26 01 00 B2 FC 00 00 F5 26 01 00 2E 34 F5 34 08 00 00 00 00 40 06 3F EA 69 00 00
CharSelectionInfo
PHP код:
09 01 00 00 00 07 00 00 00 00 4A 00 75 00 6C 00 69 00 00 00 EA D3 00 00 4D 00 61 00 6C 00 6F 00 6A 00 53 00 6F 00 6E 00 67 00 00 00 F5 26 01 00 78 03 00 00 00 00 00 00 01 00 00 00 01 00 00 00 15 00 00 00 01 00 00 00 78 45 01 00 71 42 02 00 B8 F2 FF FF 0A D7 A3 70 BD 42 A6 40 71 3D 0A D7 A3 FE 8B 40 88 7A 04 00 45 FE 2C 05 00 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 70 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6F 09 00 00 94 22 00 00 A1 02 00 00 52 16 00 00 48 09 00 00 4B 09 00 00 62 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 75 25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 00 00 01 00 00 00 00 00 00 00 0A D7 A3 70 BD 42 A6 40 71 3D 0A D7 A3 FE 8B 40 00 00 00 00 15 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
CharacterSelect (странно но ID пакета верный)
PHP код:
12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
SSQInfo
CharacterSelect (еще 1 пакет выбора чара....)
PHP код:
12 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
CharSelected
PHP код:
0B 4A 00 75 00 6C 00 69 00 00 00 EA D3 00 00 00 00 F5 26 01 00 78 03 00 00 00 00 00 00 01 00 00 00 01 00 00 00 15 00 00 00 01 00 00 00 78 45 01 00 71 42 02 00 B8 F2 FF FF 0A D7 A3 70 BD 42 A6 40 71 3D 0A D7 A3 FE 8B 40 88 7A 04 00 45 FE 2C 05 00 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 24 00 00 00 23 00 00 00 24 00 00 00 17 00 00 00 0E 00 00 00 1A 00 00 00 47 03 00 00 00 00 00 00 15 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16 B6 AC 1D
AllyDismiss (RequestManorList) (с этого пакета и далее полная ахинея с ID в скобках указан действительный ID)
AllyDismiss (????)
Вобщем такая подмена ID продолжается в течении всей сессии, в течении сессии ID на которые подменяются стандартные ID для одинаковых пакетов идентичны.
Добавлено через 9 минут
Заметил еще одну особенность, переподключаться к гейм серверу нет необходимости, достаточно сделать релогин до окна выбора персонажа. Забыл указать, сервер грация финал.