Структура пакета - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Описание темы:RequestAuthLogin

Ответ
Опции темы
Непрочитано 31.03.2014, 22:05   #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 байт.
Объясните, что еще входит в этот пакет, бьюсь уже неделю, выручайте
Mousepro вне форума Ответить с цитированием
Непрочитано 31.03.2014, 22:16   #2
Пользователь

По умолчанию Re: Структура пакета

Цитата:
Сообщение от Mousepro Посмотреть сообщение
Всем Привет. Помогите решить проблему, пишу авторизацию к серверу, но не могу найти структуру пакета RequestAuthLogin для Ит

Нашел только такое описание, но поснифав пакеты заметил что размер пакета 178 байт.
Объясните, что еще входит в этот пакет, бьюсь уже неделю, выручайте
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;
	}
Code: Java
luna9966 вне форума Ответить с цитированием
Непрочитано 31.03.2014, 22:27   #3
Пользователь

Автор темы (Топик Стартер) Re: Структура пакета

Вот только яву я не знаю, на питоне пишу, можно словами? Я так мельком по коду заметил что там Id сессии с пакета Init или GGAuth, а вот 16 байт геймгуарда это что?

Последний раз редактировалось Mousepro; 31.03.2014 в 22:28. Причина: Добавлено сообщение
Mousepro вне форума Ответить с цитированием
Непрочитано 31.03.2014, 22:40   #4
Пользователь

По умолчанию Re: Структура пакета

Цитата:
Сообщение от Mousepro Посмотреть сообщение
Вот только яву я не знаю, на питоне пишу, можно словами? Я так мельком по коду заметил что там Id сессии с пакета Init или GGAuth, а вот 16 байт геймгуарда это что?
_raw - читаем 128 байтов, которые содержат логин и пароль. _sessionId читаем 4 байта сессии, _gameGuard считываем 16 байтов ГеймГварда. А что объяснять про ГГ? Он и есть ГГ, там проверка на него дальше по коду.

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

ps. если вы пишите бота, то наверное столкнулись с леймгвардом, тогда там куча мусора в авторизации. Выше приведенный пример для чистого клиента-сервера.
luna9966 вне форума Ответить с цитированием
Непрочитано 31.03.2014, 22:47   #5
Пользователь

Автор темы (Топик Стартер) Re: Структура пакета

Цитата:
Сообщение от 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
Mousepro вне форума Ответить с цитированием
Непрочитано 31.03.2014, 22:56   #6
Пользователь

По умолчанию Re: Структура пакета

Цитата:
Сообщение от Mousepro Посмотреть сообщение
Где это 16 байт от ГГ, они случайно не в Init приходят,может это "Хз чо" и есть 16 байт эти ?
Вполне вероятно. Конкретно в пакетной истории ИТ не силен, так что подсказать, что имелось ввиду под "хз чо" не могу.
luna9966 вне форума Ответить с цитированием
Непрочитано 01.04.2014, 08:58   #7
Аватар для n3k0nation
Antihero

По умолчанию Re: Структура пакета

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

Именно с этим ключем идет сравнение в RequestAuthLogin.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 02.04.2014, 15:51   #8
Пользователь

Автор темы (Топик Стартер) Re: Структура пакета

Цитата:
Сообщение от Pointer*Rage Посмотреть сообщение
GG байты приходят на сервер от геймгуарда в пакете RequestAuthGameGuard. Структура пакета: cddddd.
c - опкод (byte, 0x07)
d - ключ сессии
4d - ключ гейм гуарда (либо raw bytes 16)

Именно с этим ключем идет сравнение в RequestAuthLogin.
Я не понял, ключ геймгуарда я сам получается формирую, я просто отсылал ему 16 нулей :
PHP код:
cm_auth_gg make_packet('BI16x'0x07sessionId
Цитата:
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
а дальше что?

Последний раз редактировалось Mousepro; 02.04.2014 в 22:19.
Mousepro вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

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

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура пакетов LineOFWar TERA 17 17.01.2013 21:13
Ищу структуру пакета ExChangeZoneInfo Малявко Работа со скриптами 5 25.05.2011 16:07
Структура пакета DiagoD Работа со скриптами 0 30.05.2010 18:44


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 20:38. Часовой пояс GMT +3.

Вверх