PDA

Просмотр полной версии : Защищено или нет?


Aieks777
08.07.2011, 15:46
Наткнулся на сервер где весь трафик от линейки шифруется драйвером, причем перехват идет на уровне функции socket::send/recv, я написал свой перехватчик, который хукает функции винсока на уровне ring0 драйвера, и мне нужно проверить действительно ли мой хук поставился "раньше" хука чужого драйвера...
есть лог пакетов до выбора персоонажа, хроники - фрея, пакеты собственно на пакеты даже не поделены, ну и не обработаны практически, кто сможет проверить на соответствие "чистым пакетам" без какой-либо защиты?

чистенькие логи:

Aieks777
09.07.2011, 00:53
тут пакеты до выбора персонажа, все пакеты постоянны(клиент раз 20 перегружал - пакеты не меняются), л2пх через ЛСП видит каждый раз разные, через инжект вообще ничего не видит(защита от хуков)

кто сможет проанализировать на другие виды защит? все пакеты "как есть" за исключением того что в хекс перевел

ArchAhper
09.07.2011, 02:05
Если ты видишь одинаковые пакеты, а л2пкх разные значит либо ты раньше драйвера хук поставил либо л2пкх пытается расшифровать и портит данные.
Отключи функцию шифровки расшифровки в л2пкх если ты увидишь то же что и твой снифер выдает то ты промазал, если нет, грац ты обошел защиту ну или по крайней мере однуз из ее уровней )))
Вот такие мысли, все банально но вроде логично =) Отпиши о результатах.

Aieks777
09.07.2011, 03:14
все как надо, пакетхак выдает совсем другие пакеты, к тому же совершенно рандомные при разных подключениях, а у меня стабильно первые 2-8 байтов одинаковые в пакетах при разных подключениях )

ArchAhper
10.07.2011, 03:43
Мда, форум однако изменился. Раньше к вопросу сразу ребята подключились бы, а теперь пол форума нубы которые пришли за ботом и пакетными багами и остальные мега знатоки которым нах уже не надо кому-то помогать. Кроме конечно своих покупателей которым они с радостью все разжевывают и в рот кладут. Это печально!

Добавлено через 7 минут
по сабжу: первые два байта не шифруются, это размер пакета, дальше опкод (ID пакета) если они у тебя одинаковые во всех сессиях скорее всего тоже не шифруются, созревает вопрос: почему тогда пакетхак не может корректно расшифровать? могу предположить что изменены ID пакетов, отсюда и все проблемы. К сожалению не знаю какие на фрее стандартные ID на LS, попробуй найти сервер без защиты и сравнить.

Добавлено через 1 минуту
Или найди исходники сервера и глянь там опкоды логин сервера.

Aieks777
10.07.2011, 21:21
Все плохо, с сегодняшнего утра сервер обновился и пакетики теперь разные стали... а раньше пакетхак разные выдавал потому что клиент грузил драйвер который шифрует трафик, и к тому моменту когда когда клиент вызывал функции recv/send пакеты уже были изменены этим драйвером, а ЛСП вклинивается в процесс приема/отправки когда идет вызов этих функций :) если коротко, то ЛСП вклинивался позже чем чем драйвер... пришлось свой писать, который ставит хуки сразу после запроса к операционке на создание нового процесса (если процесс который хочет зарегистрироваться- ла2, то хукаем загрузку dll, если dll - ws2_32.dll или wsock32.dll то загружаем мою "прокладку", моя "прокладка" содержит переходники к настоящим функциям, затем она сообщает драйверу что он свободен, ждет выгрузки моего драйвера, грузит настоящие ws2_32 и wsock32 и хукает, таким образом мои хуки самые первые, и хукают уже не оригиналы, а мои хуки :-D)

теперешние пакетики вообще разные стали, вот по 2 первых пакета от клиента к ЛС из 2х разный сессий

1ая сессия:
[2A00]3A1ADE8CC307FC72F6F132CCA1A95887F6F132CCA1A9588770 28CE0353989FF3F6F132CCA1A95887
[3A00]AF44FBC7D0F50927658F35BE7D30CACCA57C16A9EE182A2D9C 1E73AD43281CC324C7F0909110CA4B62DDE51B4DC40813F6F1 32CCA1A95887
2ая сессия:
[2A00]FA26B4F8DB84DC49A97CD52A2CA5F169A97CD52A2CA5F169D6 2FADE45FA493B9A97CD52A2CA5F169
[3A00]BA89F77482FDF22DD7862DEC910A0C9E3C893C4D1090BC9E30 0FD9110EBB5597FE472D086D0FE5E9A1839C9C26689E87A97C D52A2CA5F169

Kilatif
13.07.2011, 16:47
Ну блин, разве удивительно то, что пакетики эти разные при разных сессиях в зашифрованном виде? Они в любом случае будут разные, потому что их как минимум будет шифровать BlowFish key, взятый из Init'а (первого пакета сервера). Я конечно в этом далеко не профи, но думаю тебе стоит анализировать пакет Init при разных сессиях, потому что он, на обычном серве приходит совершенно не шифрованный. Единственное что, будет ли он шифроваться драйвером и на этом сервере или они решили его тоже не трогать - это я хз

Aieks777
17.07.2011, 21:01
да нет, блоуфиш тут непричем, я себе давно уж программку сделал которая пакеты дешифрует, они все равно разные, попробовал на сервере el-hazard, на нем все работает, пх правда не проверял но думаю тоже зажует после некоторых танцев с бубном :) вообщем сервачок такой нехилый мне попался, попробовал поковыряться в драйвере, но вкурить в алгоритм никак немогу, нашел ключи шифрования(их там всего 3 и все статические), но шифруется согласно длине и типу пакета, думаю через пару дней закончу разбираться, но одно обновление и можно начинать все сначала... думаю АПИ самого клиента поизучать, наверняка есть процедуры которыми можно пакетами управлять(удалить/изменить/добавить), но это уже не пакетник получится, да и с разными клиентами куча проблем наверно... вообщем абзац, аналог пх состряпать можно, но проживет он до первого обновления.

Aieks777
19.07.2011, 15:17
ладно, всем спасибо, состряпал программку, все ловит и шифрует/дешифрует, жду обновления на сервере :-D

Whitewolf
14.08.2011, 22:16
Народ помогите!!! Прога работает показывает пакеты можно изменять и прочее..НО ник перса в верхнем левом углу не показывается(((что делать????С4

Yegor
15.08.2011, 08:32
Aieks777, чисто интеренсо на чем драйвер писал?
Так же как я понимаю нужно компилировать отдельные версии драйверов для x32 и x64 систем?