Люди никто не знает как работает авторизация на HB-Gracia, http://fursoffers.narod.ru/Packets.htm тут описано под Interlude, но щас это уже не актуально... Может кто как поможет? ну хотя бы алгоритм типо что куда шифрует в какой последовательности...
alexteam, вообщето авторизация происходит на логин сервере...
В общих чертах авторизация на HB-Gracia происходит так:
1. Пакет от сервера размером 186 байт зашифрованный по BlowFish начальным 16тибайтным ключем (ключ как в интерлюдии, наизусть его не помню), после дешифровки BF надо ещё дешифровать по XOR, ключ для него находиться на месте чексуммы пакета (178-181 байты), алгоритм дешифрации могу выложить когда домой приду...
В этом пакете с ID=0 следующий формат данных:
4 байта - session id
4 байта - ревизия протокола ($c621 вроде)
128 байт - RSA ключ заскремблированный (как дешифровать в нормальный ключ тож могу выложить)
16 байт - какие то GameGuard значения неизвестного назначения
16 байт - новый BF ключ для следующих пакетов
остальное нули...
Это пакет Init из той статьи что ты привёл, ну а дальше собсно всё как в статье)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
ООо, большой сенк всем, xkor, буду благодарен если дашь как норм дешифровать RSA ключ. и про XOR ключ если выложишь - только на пользу пойдёт
BF ключ я нашёл только такой - 6B60CB5B82CE90B1CC2B6C556C6C6C6C
написано под интерлюд... есть еще такой, но он вроде под С4, 5F3B352E5D39342D33313D3D2D257854215E5B24
Последний раз редактировалось Maxno, 26.05.2009 в 22:45.
Просто хочу сделать качественный информер о состоянии серверов, но блин я не дружу с делфи так хорошо... может кто то посоветует книжки.... ну там не как формы создавать, а например полное описание работы с сокетами, или по кодингу что нить... на чём сами учились и вам реально помогло.
Maxno, для написания своего бота (информера) вся работа с сокетами сводится к нескольким простым функциям. Тебе нужно создать сокет, подключиться к серверу по определенному адресу на определенный порт, и использовать потом 2 функции чтения и записи данных с этого сокета и все в минимальном варианте. А остальное это уже прикладное программирование и тут нужно учиться самому хотя бы на примерах. Если нужен пример работы с сокетами могу выложить с подробнейшим описанием что и зачем, или напиши куда и я тебе пришлю книгу по делфи где все подробно описано.
Добавлено через 6 часов 1 минуту xkor, Это пакет Init из той статьи что ты привёл, ну а дальше собсно всё как в статье) - что то совсем все не так дальше как в той статье, даже длины пакетов не совпадают совсем. Чем зашифрованы последующие пакеты, ну хотябы RequestAuthLogin от клиента? Как непробовал дешифровать не удаеться. Пробовал использовать BlowFish с ключем, который приходит с пакетом Init - не подходит. (Дешифровать пробую пакеты перехваченные в процессе логина обычного клиента на Шок ЛС).
Последний раз редактировалось Yegor, 21.06.2009 в 21:02.
Причина: Добавлено сообщение
Yegor, значит неверно дешифруешь или ключ берешь неверно...
ЗЫ или дешифруешь пакеты одной сессии ключем от другой сессии, ключ то при каждом подключении разный)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor, нет беру с текущей сесии. Байты для ключа я беру из декодированого пакета init начиная со 153 байта (если считать что нулевой байт это id пакета). Первый пакет (init) расшифровал правилно, все сходится с твоим описанием. Ключ брать в прямом или обратном порядке?
Так задача усложнилась оказывается после пакета init ещё должен идти AuthGG, а в пакете с логином и паролем они закодированы RSA ключом.
Пробовал использовать процедуру RSAEncrypt из примера la2_client_emu, с тем же RSA ключом и тем же логином и паролем строка получается совсем не такая как у клиента Л2. Поделитесь кто нибудь функцией RSA кодирования.
Последний раз редактировалось Yegor, 22.06.2009 в 03:47.