Показать сообщение отдельно
Старый 21.09.2011, 00:12   #1
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Альтернативный парсер пакетов

Неспешно делается парсер пакетов в пакетхаке на основе java исходников серверов. Есть определенные успехи.
Как известно из java исходников можно сделать расшифровку пакетов для packets.ini. Дело муторное, не все возможности предусмотрены. Захотелось сделать, что то типа такого, чтобы кинул эти исходники с минимальными исправлениями в папку settings и пакетхак мог сам их просматривая показывать содержимое пакета.

Так выглядит исходник пакета SM_SKILL_LIST для Aion.
java Код:
protected void writeImpl(AionConnection con, ByteBuffer buf) {         final int size = skillList.length;         writeH(buf, size); //skills list size         for (SkillListEntry entry : size)         {                 writeH(buf, entry.getSkillId());                 writeH(buf, entry.getSkillLevel());                 writeC(buf, 0x00);                 writeC(buf, entry.getExtraLvl());                 writeD(buf, 0); //use time? [s]                 writeC(buf, entry.isStigma() ? 1 : 0); // stigma flag         }         writeD(buf, messageId);         if (messageId != 0) ;         {             writeH(buf, 0x24);             writeD(buf, skillNameId);             writeH(buf, 0x00);             writeS(buf, skillLvl);         } }

Во вложении картинка как выглядит пакет в пакетхаке.

Планируется исходники пакетов хранить так:


Код:
settings
    packets.ini
         aion21
           clientpackets
                CM_ABYSS_RANKING_LEGIONS.java
                CM_ABYSS_RANKING_PLAYERS.java
                ...
           serverpackets
                SM_ABNORMAL_EFFECT.java
                SM_ABNORMAL_STATE.java
                ...
         aion25
           clientpackets
           serverpackets
         gracia
           clientpackets
                 Action.java
                 AddTradeItem.java
                 ...
           serverpackets
                 AbnormalStatusUpdate.java
                 AcquireSkillDone.java
                 ...
и т.д.
Имеются и плюсы и минусы.
Из плюсов: легко модифицировать пакет.
Из минусов: неспешность вывода показа пакета, особенно заметно если исходник имеет большой размер.

Осталось найти приличные исходники java сервера Aion и LineageII и подготовить пакеты.
В принципе за день я смог в черновом варианте обработать клиентские пакеты Aion 2.1, так что это может занять не так много времени.

PS: код до конца еще не дописан.
PPS: просьба накидать мне логов пакетов для Aion 2.1 и 2.5, чтобы можно было тестировать правильность разбора пакетов.

PPPS: тестовый вариант я выложу на FTP (Внимание! При ошибках в описании пакета намертво виснет пакетхак!).
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный21.jpg
Просмотров: 535
Размер:	86.8 Кб
ID:	2370  Нажмите на изображение для увеличения
Название: Безымянный20.jpg
Просмотров: 440
Размер:	248.7 Кб
ID:	2371  
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 21.09.2011 в 01:23.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 6 спасибками от: