Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Опкоды, Формулы, Клиент

Важная информация

Опкоды, Формулы, Клиент Разбор и изучение взаимодействия клиента с сервером

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.07.2010, 18:34   #1
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию Централизованый формат снифов

Редакция от 31 июля 2011, 13:13, версия 3.1
  • 1. RAW.
    • 1.1. заголовок снифа.
      Код:
      struct MainHeader
      {
        char signature[3]; // 'RAW'.
        byte version[2]; // 0x01, 0x03
        byte snifferID; 
        uint build; 
        char language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
        byte sessionKey[40]; 
        uint unixTime;
        uint tickCount;
        uint optionalHeaderLength; 
      };
      byte[optionalHeaderLength] optionalData;
    • 1.2. чанк
      Код:
      struct ChunkHeader
      {
        char direction[4]; // 'SMSG', 'CMSG'
        uint sessionID;
        uint tickCount;
        uint optionalDataLength;
        uint dataLength;
      };
      byte[optionalDataLength] optionalData;
      byte[dataLength] data;
  • 2. PKT.
    • 2.1. заголовок снифа.
      Код:
      struct MainHeader
      {
        char signature[3]; // 'PKT'
        byte version[2]; // 0x01, 0x03
        byte snifferID; 
        uint build; 
        char language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
        byte sessionKey[40]; // может быть заполнено нулями
        uint unixTime;
        uint tickCount;
        uint optionalHeaderLength; 
      };
      byte[optionalHeaderLength] optionalData;
    • 2.2. чанк
      Код:
      struct ChunkHeader
      {
        char direction[4]; // 'SMSG', 'CMSG'
        uint sessionID;
        uint tickCount;
        uint optionalDataLength;
        uint dataLength;
      };
      byte[optionalDataLength] optionalData;
      byte[dataLength] data;
      , где
      - data включает в себя Opcode, выравненный до uint
      - dataLength равен размеру data

  • 3. Имя файла.
    • 3.1. имя файла
      имя может быть произвольным и удобным каждому из разработчиков.
    • 3.2. расширение файла
      обязательно .raw или .pkt

Редакция от 25 июля 2010, 21:00, версия 3.0
  • 1. RAW.
    • 1.1. заголовок снифа.
      Код:
      struct MainHeader
      {
        char signature[3]; // 'RAW'.
        byte version[2]; // 0x00, 0x03
        byte snifferID; 
        uint build; 
        char language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
        byte sessionKey[40]; 
        uint optionalHeaderLength; 
      };
      byte[optionalHeaderLength] optionalData;
    • 1.2. чанк
      Код:
      struct ChunkHeader
      {
        char direction[4]; // 'SMSG', 'CMSG'
        uint unixTime;
        uint tickCount;
        uint optionalDataLength;
        uint dataLength;
      };
      byte[optionalDataLength] optionalData;
      byte[dataLength] data;
  • 2. PKT.
    • 2.1. заголовок снифа.
      Код:
      struct MainHeader
      {
        char signature[3]; // 'PKT'
        byte version[2]; // 0x00, 0x03
        byte snifferID; 
        uint build; 
        char language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
        byte sessionKey[40]; // может быть заполнено нулями
        uint optionalHeaderLength; 
      };
      byte[optionalHeaderLength] optionalData;
    • 2.2. чанк
      Код:
      struct ChunkHeader
      {
        char direction[4]; // 'SMSG', 'CMSG'
        uint unixTime;
        uint tickCount;
        uint optionalDataLength;
        uint dataLength;
      };
      byte[optionalDataLength] optionalData;
      byte[dataLength] data;
      , где
      - data включает в себя Opcode, выравненный до uint
      - dataLength равен размеру data

Предложения
SnifferID:
Код:
0 - Wad // 2005 и ранее
1 - Nomad // 2005 и ранее
2 - WoWCore // 2006
3 - Mangos (TOM_RUS) // 2006
4 - User456 // 2007
5 - Delfin // 2007
6 - Burlex // 2007
7 - WCell // 2008
8 - Kobold // 2009
9 - abdula123 // 2010
10 - Konctantin/LordJZ // 2010
11 - Йоха // 2010
__________________

Последний раз редактировалось RomanRom2; 07.08.2011 в 21:24.
Konctantin вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Amaru (29.07.2013), lordinpvp (27.07.2010)
Старый 13.07.2011, 11:50   #161
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну как не видно... вон сколько понаписали в коменты.
вот краткая выдержка:

1. размер connectionId 1 байт
2. убрать tickCount
3. изменить порядок
4. убрать unixTime из чанка
5. вынести opcode из данных в чанк

мои коменты по пунктам:
1. против. нужно оставить 4 байта.
2. категорически против. все понимают почему?
3. против. текущий порядок идеологически правильный. нужно подробно объяснять?
4. согласен. оставлен unixTime снифа.
5. категорически против. уже объяснял выше.
RomanRom2 вне форума   Ответить с цитированием
Старый 13.07.2011, 11:53   #162
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Последний пост 19.05.2011, 21:21, а это май.
virusav вне форума   Ответить с цитированием
Старый 13.07.2011, 11:57   #163
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

имелось ввиду, что месячное ревью закончилось.
RomanRom2 вне форума   Ответить с цитированием
Старый 13.07.2011, 13:49   #164
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ну как не видно... вон сколько понаписали в коменты.
вот краткая выдержка:

1. размер connectionId 1 байт
2. убрать tickCount
3. изменить порядок
4. убрать unixTime из чанка
5. вынести opcode из данных в чанк

мои коменты по пунктам:
1. против. нужно оставить 4 байта.
2. категорически против. все понимают почему?
3. против. текущий порядок идеологически правильный. нужно подробно объяснять?
4. согласен. оставлен unixTime снифа.
5. категорически против. уже объяснял выше.
Поддерживаю это, структура в соответствии: http://ru-mangos.ru/showpost.php?p=22660&postcount=147
LordJZ вне форума   Ответить с цитированием
Старый 31.07.2011, 12:14   #165
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

итак, пора подводить итоги.
спецификация 3.1 принята, с чем всех и поздравляю.

что то нас на форматы к концу июля постоянно тянет
RomanRom2 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Konctantin (31.07.2011)
Старый 06.08.2011, 19:19   #166
HuntsMan
Ученый
 
Аватар для HuntsMan
 
Регистрация: 19.12.2010
Сообщений: 221
Сказал(а) спасибо: 64
Поблагодарили 12 раз(а) в 9 сообщениях
Записей в дневнике: 2
HuntsMan На верном пути
По умолчанию

В первом посте обновление будет?
HuntsMan вне форума   Ответить с цитированием
Старый 06.08.2011, 22:35   #167
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

обновил.
RomanRom2 вне форума   Ответить с цитированием
Старый 06.08.2011, 23:17   #168
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
обновил.
Эм, кажется вы забыли в основном заголовке добавить новые поля.
LordJZ вне форума   Ответить с цитированием
Старый 07.08.2011, 06:45   #169
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Эм, кажется вы забыли в основном заголовке добавить новые поля.
ммм, да да да... спасибо.
RomanRom2 вне форума   Ответить с цитированием
Старый 07.08.2011, 09:59   #170
Chameleon
Новичок
 
Регистрация: 04.03.2011
Сообщений: 29
Сказал(а) спасибо: 12
Поблагодарили 9 раз(а) в 7 сообщениях
Chameleon На верном пути
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Эм, кажется вы забыли в основном заголовке добавить новые поля.
А так же версию с 0x00, 0x03 на 0x01, 0x03.
Chameleon вне форума   Ответить с цитированием
Старый 07.08.2011, 21:25   #171
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

что ж такое... еще не проснулся видать
поправил.
RomanRom2 вне форума   Ответить с цитированием
Ответ


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

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



Текущее время: 07:40. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot