Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Структура пакета
#1
Всем Привет. Помогите решить проблему, пишу авторизацию к серверу, но не могу найти структуру пакета RequestAuthLogin для Ит
Цитата:Формат для ревизии 0xc621:
00
00 00 00 00 ... // Начало массива из 128 байт содержащих логин и пароль, и шифрующихся по алгоритму RSA
... (байты 94-107) // строка содержащая логин. Имеет длинну 14 байт и храниться в формате ASCII а не UNICODE !!!
... (байты 108-124) // строка содержащая пароль. Имеет длинну 16 байт и храниться в формате ASCII а не UNICODE !!!
... 00 00 00 00 // не используется. Конец массива
Нашел только такое описание, но поснифав пакеты заметил что размер пакета 178 байт.
Объясните, что еще входит в этот пакет, бьюсь уже неделю, выручайте
Ответ
#2
Mousepro Написал:Всем Привет. Помогите решить проблему, пишу авторизацию к серверу, но не могу найти структуру пакета RequestAuthLogin для Ит

Нашел только такое описание, но поснифав пакеты заметил что размер пакета 178 байт.
Объясните, что еще входит в этот пакет, бьюсь уже неделю, выручайте

[SRC="java"]public class RequestAuthLogin extends L2LoginClientPacket
{
private byte[] _raw;
private int _sessionId;
private byte[] _gameGuard;

public RequestAuthLogin()
{
_raw = new byte[128];
_gameGuard = new byte[16];
}

@Override
public boolean readImpl()
{
if(getAvaliableBytes() >= 128)
{
try
{
readB(_raw);
_sessionId = readD();
readB(_gameGuard);
return true;
}
catch(Exception e)
{
_log.log(Level.SEVERE, "error readImpl: " + this.getClass().getSimpleName(), e);
return false;
}
}
return false;
}[/SRC]
Ответ
#3
Вот только яву я не знаю, на питоне пишу, можно словами? Я так мельком по коду заметил что там Id сессии с пакета Init или GGAuth, а вот 16 байт геймгуарда это что?
Ответ
#4
Mousepro Написал:Вот только яву я не знаю, на питоне пишу, можно словами? Я так мельком по коду заметил что там Id сессии с пакета Init или GGAuth, а вот 16 байт геймгуарда это что?

_raw - читаем 128 байтов, которые содержат логин и пароль. _sessionId читаем 4 байта сессии, _gameGuard считываем 16 байтов ГеймГварда. А что объяснять про ГГ? Он и есть ГГ, там проверка на него дальше по коду.

readB - читаем массив
readD - читаем int.

ps. если вы пишите бота, то наверное столкнулись с леймгвардом, тогда там куча мусора в авторизации. Выше приведенный пример для чистого клиента-сервера.
Ответ
#5
luna9966 Написал:_raw - читаем 128 байтов, которые содержат логин и пароль. _sessionId читаем 4 байта сессии, _gameGuard считываем 16 байтов ГеймГварда. А что объяснять про ГГ? Он и есть ГГ, там проверка на него дальше по коду.

readB - читаем массив
readD - читаем int.

Цитата: Сразу после установки соединения сервер отправляет клиенту пакет Init
2. В ответ на него клиент отправляет пакет RequestGGAuth(в ревизии протокола 785a этот пакет не высылается)
3. Сервер отвечает на него пакетом GGAuth (в ревизии протокола 785a этот пакет не высылается)
4. Если сервер ответил, что авторизация прошла успешно, то клиент высылает пакет RequestAuthLogin, содержащий логин и пароль.
5. Проверка логина и пароля, в случае неудачи, сервер высылает пакет LoginFail содержащий причину неудачи, инатче высылается пакет LoginOk, содержащий
session key #1.
6. Далее клиент запрашивает список серверов пакетом RequestServerList
Где это 16 байт от ГГ, они случайно не в Init приходят,может это "Хз чо" и есть 16 байт эти ?
Цитата:Формат для ревизии протокола 0xc621:
00
XX XX XX XX // ID сессии
XX XX XX XX // Версия протокола 0xc621
XX XX XX XX ... // 128 байт публичного ключа, которым в последствии клиент шифрует пакет RequestAuthLogin
29 DD 95 4E // \
77 C3 9C FC // | хз что
97 AD B6 20 // |
07 BD E0 F7 // /
XX XX XX XX ... // 16 байт blowfish ключа которым шифруются все последующие пакеты
00
XX XX XX XX // контрольная сумма пакета

Пакет для Interlude содержит дополнительные 4 байта:
XX XX XX XX // XOR ключ которым зашифрован пакет
пока что пишу только авторизацию, проверяю все на чистом сервере, цель пока - получить LoginOk Wink
Ответ
#6
Mousepro Написал:Где это 16 байт от ГГ, они случайно не в Init приходят,может это "Хз чо" и есть 16 байт эти ?

Вполне вероятно. Конкретно в пакетной истории ИТ не силен, так что подсказать, что имелось ввиду под "хз чо" не могу.
Ответ
#7
GG байты приходят на сервер от геймгуарда в пакете RequestAuthGameGuard. Структура пакета: cddddd.
c - опкод (byte, 0x07)
d - ключ сессии
4d - ключ гейм гуарда (либо raw bytes 16)

Именно с этим ключем идет сравнение в RequestAuthLogin.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#8
Pointer*Rage Написал:GG байты приходят на сервер от геймгуарда в пакете RequestAuthGameGuard. Структура пакета: cddddd.
c - опкод (byte, 0x07)
d - ключ сессии
4d - ключ гейм гуарда (либо raw bytes 16)

Именно с этим ключем идет сравнение в RequestAuthLogin.

Я не понял, ключ геймгуарда я сам получается формирую, я просто отсылал ему 16 нулей :
PHP код:
<?php 
cm_auth_gg
= make_packet('BI16x', 0x07, sessionId)
Цитата:dump cm_auth_gg size = 0x18
0x7 0x8f 0xac 0x27 0x37 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0
ответ (все норм) :
Цитата:GGAuth size = 0x20
0xb 0x8f 0xac 0x27 0x37 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x8b 0x23 0xd8 0xf8 0x85 0xbc 0x7c 0xc4 0x81 0x33 0x83

какая структура пакета то, что серверу отправлять ?
опкод 0x00
а дальше что?
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Структура пакета SystemMsg (531 Lindvior) Alay 0 1,270 02-12-2017, 11:24 AM
Последний пост: Alay
  Структура сборок серверов MalPorro 42 7,993 12-19-2014, 12:38 PM
Последний пост: DiagoD
  Сниф Пакета Снега Krasavella 35 11,137 12-24-2012, 12:22 AM
Последний пост: Zubastic
  Структура пакетов. Drack 5 2,182 06-15-2012, 10:19 PM
Последний пост: [STIGMATED]
  C++ Структура NpcInfo ALF. 3 2,383 01-17-2012, 11:54 AM
Последний пост: bugmenot

Перейти к форуму:


Пользователи, просматривающие эту тему: 2 Гость(ей)