Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 25.04.2010, 03:11   #1
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию Непонятный алгоритм смены ID исходящих пакетов

Обращаюсь к знатокам, есть сервер 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
PHP код:
73 02 01 
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)
PHP код:
8F 0C 00 
AllyDismiss (????)
PHP код:
8F 3F 00 
Вобщем такая подмена ID продолжается в течении всей сессии, в течении сессии ID на которые подменяются стандартные ID для одинаковых пакетов идентичны.

Добавлено через 9 минут
Заметил еще одну особенность, переподключаться к гейм серверу нет необходимости, достаточно сделать релогин до окна выбора персонажа. Забыл указать, сервер грация финал.

Последний раз редактировалось Asmoday, 25.04.2010 в 03:11. Причина: Добавлено сообщение
Asmoday вне форума   Ответить с цитированием
За это сообщение Asmoday нажился спасибкой от:
Старый 25.04.2010, 14:54   #2
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Тоже ковыряюсь над данной защитой. Чонить придумаем. На АЧ вроде бы есть бот под новую защиту, но под хайдом 150. Говорят ломается защита максимум час. Но это видимо те, у кого есть опыт работы с протоколом линейки

Добавлено через 37 минут
Еще ключ спрятан в пакете CharSelected, в самом конце. В обычной шифрации там стоят нули. А здесь последние 4 байта постоянно меняются. Видимо защита построена на этом. НО! В пакете KeyPacket все равно есть какойто ключ и от него тоже зависит чтото.

Последний раз редактировалось guplen, 25.04.2010 в 14:54. Причина: Добавлено сообщение
guplen вне форума   Ответить с цитированием
Старый 25.04.2010, 15:19   #3
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

хех, эт стандартная фишка на офах, ключ и в KeyPacket и в CharSelected вы правильно увидели, что с этим ключем делать можно увидеть в сорцах пакетхака, ну а чтоб всё норм дешифровывалось надо прост включить в пакетхаке галочку "Gracia (off server) (устарело на l2.ru)"
ЗЫ кстати почему алекс там написал что устарело на l2.ru я хз, эт всё ещё актуально для офов
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
За это сообщение xkor нажился 2 спасибками от:
Старый 25.04.2010, 15:44   #4
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Спасибо! Заглянул в исходник и испугался, там такая аццкая процедурка. Будем разбираться.
С включенной опцией оффГрация правильно стал расшифровываться пакет AuthLogin, но после пакета от сервака CharSelected шифрация опять меняется.

xkor, в двух словах не получится рассказать про этот алгоритм?
guplen вне форума   Ответить с цитированием
Старый 25.04.2010, 15:44   #5
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

в стандартной комплектации - неактуально )
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 25.04.2010, 18:12   #6
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

xkor большое спасибо за то что наставил на путь истинный =) Буду ковырять. На днях выложу "фиксер" чтоб можно было запускать ботов и тому подобные фигню =)
Asmoday вне форума   Ответить с цитированием
За это сообщение Asmoday нажился спасибкой от:
Старый 25.04.2010, 18:18   #7
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Не смог понять алгоритма нифига там =) А на этом сервере возможно немного переделаный алгоритм. Но не понимая сути основного алгоритма, переделать будет почти невозможно.

Добавлено через 1 минуту
Цитата:
Сообщение от Asmoday Посмотреть сообщение
xkor большое спасибо за то что наставил на путь истинный =) Буду ковырять. На днях выложу "фиксер" чтоб можно было запускать ботов и тому подобные фигню =)
Фиксер - это скрипт? =) Или софтина какая то?

Последний раз редактировалось guplen, 25.04.2010 в 18:18. Причина: Добавлено сообщение
guplen вне форума   Ответить с цитированием
Старый 25.04.2010, 19:32   #8
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

Хочу в отдельную софтинку вынести. Сейчас разбираюсь с алгоритмом что и как там делается. Если xkor конечно распишет с комментами будет многим проще.

Добавлено через 4 минуты
На счет переделанного алгоритма, ога, переделали, но теперь хотя пакет AuthLogin дешифровывается нормально, думаю дальше дело техники, понять что изменили.

Последний раз редактировалось Asmoday, 25.04.2010 в 19:32. Причина: Добавлено сообщение
Asmoday вне форума   Ответить с цитированием
За это сообщение Asmoday нажился спасибкой от:
Старый 25.04.2010, 19:43   #9
Местный
 
Регистрация: 27.01.2009
Сообщений: 154
Сказал Спасибо: 23
Имеет 26 спасибок в 19 сообщенях
guplen пока неопределено
По умолчанию

Цитата:
Сообщение от Asmoday Посмотреть сообщение
Хочу в отдельную софтинку вынести. Сейчас разбираюсь с алгоритмом что и как там делается. Если xkor конечно распишет с комментами будет многим проще.

Добавлено через 4 минуты
На счет переделанного алгоритма, ога, переделали, но теперь хотя пакет AuthLogin дешифровывается нормально, думаю дальше дело техники, понять что изменили.
Хотелось бы в виде скрипта в лпх или впф. Да и более универсально будет это.
Я думаю поделишься алгоритмом, если получится разгадать его?

Сам щас тож сижу ковыряюсь в алгоритме, поподробней бы комментарии, а то не всегда доходит почему именно так, а не по другому. Например цикл от 0 до $D0... долго ломал голову, пока не догадался заглянуть в описания пакетов, и не догнал что это ИД. Канечно, может для кого то это и очевидно

Последний раз редактировалось guplen, 25.04.2010 в 19:46.
guplen вне форума   Ответить с цитированием
Старый 25.04.2010, 19:53   #10
Новичок
 
Регистрация: 06.06.2009
Сообщений: 28
Сказал Спасибо: 8
Имеет 5 спасибок в 5 сообщенях
Asmoday пока неопределено
По умолчанию

Случаем не понял откуда берется seed?
Asmoday вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 21:54.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!