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)
Старый 25.07.2010, 17:27   #41
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
RomanRom2, только опкод все-равно форматируем до 32 бит, ага?
да, пусть будет.

помести пожалуйста в первое сообщение форматированный документ с описанием и с последними предложениями.
RomanRom2 вне форума   Ответить с цитированием
Старый 25.07.2010, 17:43   #42
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

И так, на последний момент:


Заголовок файла:
Код:
byte signature[3]; // 'PKT' | 'RAW'.
word version; // == 0x0003 - для версии 3.0.
byte snifferID; // Распределить уникальные номера. — это надо решить.
uint build; // Номер сборки клиента, обратите внимание, тип uint (4 байта). — зачем 4 байта?
byte language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
byte sessionKey[40]; // Ключ сессии, для PKT не используется и может быть заполнен как угодно (лучше нулями).
byte OptionalHeaderLength;
byte optionalHeader[];
Заголовок пакета:
Код:
(byte)Direction; // 0xFF — серверный, 0xCC — клиентский
(uint)UnixTime
(uint)TickCount
(uint)OptionalHeader.Length
(uint)Data.Length
(byte[])OptionalHeader
(byte[])Data — предлагаю именно такой порядок: длина DD, длина данных, DD, данные.
            Данные включают в себя опкод, выравненный до 32 бит.


____________
Цитата:
коллеги, а для чего в снифе девелоперс дата ?
Для данных создателей сниффа... я, например, там хочу хранить количество пакетов, а для каждого пакета — его флаги.
LordJZ вне форума   Ответить с цитированием
Старый 25.07.2010, 17:49   #44
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Предлагаю так же учесть доводы user456 насчет указания направления пакета, и расширить это поле с 1 до 4 байт, заодно, сделав размер заголовка чанка кратным 4:
Код:
struct ChunkHeader
{
  char direction[4]; // 'RECV' и 'SEND', либо 'SMSG' и 'CMSG', либо то, что вы предложите.
  uint unixTime;
  uint tickCount;
  uint optionalDataLength;
  uint dataLength;
};
// sizeof(ChunkHeader) == 4 + 4 + 4 + 4 + 4 = 20 байт (align == 1)

Сразу после ChunkHeader следуют optional-данные, затем данные пакета.
P.S. Подстроился с учетом мнения LordJZ о порядке следования данных.

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

еще одно из доводов user456:
цитирую:
я бы выкинул из каждого пакета и UnixTime
есть стартовый и тиккаунты
RomanRom2 вне форума   Ответить с цитированием
Старый 25.07.2010, 17:52   #46
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
И так, на последний момент:
зачем 4 байта?
Конечно, сомнительно, что номера сборок превысят 65 535, но я увидел uint в описании у RomanRom2.
VDm вне форума   Ответить с цитированием
Старый 25.07.2010, 17:53   #47
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

по поводу byte SnifferID - иожет сделать не 1 байт, а немного длинней, и хранить там символьное представление, например "wcore"
Просто придумывать номера ID - это еще 1 стандарт, кто его будет поддерживать ? а так каждый сниферописатель придумает какое-нибудь символьное сокращение для своего детища

Последний раз редактировалось Йоха; 25.07.2010 в 17:57.
Йоха вне форума   Ответить с цитированием
Старый 25.07.2010, 18:08   #48
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от VDm Посмотреть сообщение
Предлагаю так же учесть доводы user456 насчет указания направления пакета, и расширить это поле с 1 до 4 байт, заодно, сделав размер заголовка чанка кратным 4:
Код:
struct ChunkHeader
{
  char direction[4]; // 'RECV' и 'SEND', либо 'SMSG' и 'CMSG', либо то, что вы предложите.
пожалуй соглашусь на SMSG и CMSG. и действительно, когда открываешь бинарные данные в фаре, ругаешься, что слету не видно, где начинается чанк.

Цитата:
Сообщение от VDm Посмотреть сообщение
Конечно, сомнительно, что номера сборок превысят 65 535, но я увидел uint в описании у RomanRom2.
да, я тоже было подумал, что вдруг мы доживем до билда 65к. ну а пусть будет? для унификации и выравнивания, что ли. кто принципиально против?

Цитата:
Сообщение от Йоха Посмотреть сообщение
по поводу byte SnifferID - иожет сделать не 1 байт, а немного длинней, и хранить там символьное представление
а это ничего не меняет. какая то сигнатура будет вместо 1 байта. а кто будет поддерживать эти сигнатуры? точно так же их надо будет описывать где то.

Цитата:
Сообщение от LordJZ Посмотреть сообщение
И так, на последний момент:
— предлагаю именно такой порядок: длина DD, длина данных, DD, данные.
Данные включают в себя опкод, выравненный до 32 бит.
в данном случае не принципиально в какой последовательности хранить. пусть так, логика парсеров ни сколько не меняется.
только хочу еще добавить, что длина данных содержит в себе 4 байта опкода (который выравнен до 4 байт).
RomanRom2 вне форума   Ответить с цитированием
Старый 25.07.2010, 18:29   #49
user456
Новичок
 
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
user456 На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
господа, поступило шикарное предложение по формату чанка:

(byte)Direction;
(uint)UnixTime
(uint)TickCount
(uint)Data.Length
(uint)DD.Length
(byte[])Data
(byte[])DD
Да, если слишком кратко излагать - не доходит. Развернуто:
struct main_hdr{
int sign;
uint pkt_hdr_offset;
uint pkt_hdr_len;
uint data_offset;
...
}

struct pkt_hdr_node{
int len;
char [50] name;
}

потом с адреса pkt_hdr_offset забиваеш массив и получаеш свои типы, можно по name разбор делать или добавить константы типа. Получится структура велосипеда, который давно изобрели в каком-нибудь DBase.
Один фиг через год станет понятно что UnixTime в каждом пакете это мусор (достаточно тиккаунтов на четверо суток в миллисекундах и даты создания файла или одного time в хедере)
user456 вне форума   Ответить с цитированием
Старый 25.07.2010, 18:43   #50
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Цитата:
Сообщение от user456 Посмотреть сообщение
Да, если слишком кратко излагать - не доходит.
Сложно, если это кому-то потребуется, пусть задает optionalData, а там - что угодно и сколько угодно.
VDm вне форума   Ответить с цитированием
Старый 25.07.2010, 19:19   #51
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

По историческим соображениям, описанным здесь: http://www.gotwow.ic.cz/
Пытаемся составить список SnifferID (SnifferID получается так же при конвертации данных от команды, не имеющей совместимости с данным форматом):
Код:
0x00 - Wad // 2005 и ранее
0x01 - Nomad // 2005 и ранее
0x02 - WoWCore // 2005
0x03 - Mangos (TOM_RUS) // 2005, намеренно не отделяю по времени TOM_RUS от Mangos
0x04 - User456 // 2006
0x05 - Delfin // 2006
0x06 - Burlex // Хотя начинал он явно раньше, я точно не знаю, когда.
0x07 - WCell
0x08 - LordJZ
0x09 - Йоха // 2010
0x0A - abdula123 // 2010
Если кого-то забыл или не туда записал, отпишитесь.

Последний раз редактировалось VDm; 25.07.2010 в 20:00.
VDm вне форума   Ответить с цитированием
Старый 25.07.2010, 19:49   #52
user456
Новичок
 
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
user456 На верном пути
По умолчанию

Цитата:
Сообщение от VDm Посмотреть сообщение
Если кого-то забыл или не туда записал, отпишитесь.
Да просто поле символов 25 оставь и все. А там уже WoWCore v 3.xx внутри или типа того.

P.S. бурлеха еще забыл.

Последний раз редактировалось user456; 25.07.2010 в 19:56.
user456 вне форума   Ответить с цитированием
Старый 25.07.2010, 19:59   #53
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

позволил себе обновить первый пост в связи с последними изменениями.
Цитата:
Сообщение от user456 Посмотреть сообщение
P.S. бурлеха еще забыл.
я думаю что бурлекс меньше всего будет этому придерживаться и что ему глубоко фиолетово на все это.

Последний раз редактировалось RomanRom2; 25.07.2010 в 20:05.
RomanRom2 вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Konctantin (25.07.2010), LordJZ (25.07.2010)
Старый 25.07.2010, 20:08   #54
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от VDm Посмотреть сообщение
По историческим соображениям, описанным здесь: http://www.gotwow.ic.cz/
Пытаемся составить список SnifferID (SnifferID получается так же при конвертации данных от команды, не имеющей совместимости с данным форматом):
Код:
0x00 - Wad // 2005 и ранее
0x01 - Nomad // 2005 и ранее
0x02 - WoWCore // 2005
0x03 - Mangos (TOM_RUS) // 2005, намеренно не отделяю по времени TOM_RUS от Mangos
0x04 - User456 // 2006
0x05 - Delfin // 2006
0x06 - Burlex // Хотя начинал он явно раньше, я точно не знаю, когда.
0x07 - WCell
0x08 - LordJZ
0x09 - Йоха // 2010
0x0A - abdula123 // 2010
Если кого-то забыл или не туда записал, отпишитесь.
WowCore вроде-бы 6-ку и использует (со слов RomanRom2)
LordJZ вне форума   Ответить с цитированием
Старый 25.07.2010, 20:32   #55
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
WowCore вроде-бы 6-ку и использует (со слов RomanRom2)
Мы посчитали, что использовать в качестве SnifferID - номер командры разработчиков, а не номер их программы (у одной команды может быть несколько разных программ), будет более правильно.
VDm вне форума   Ответить с цитированием
Старый 25.07.2010, 20:33   #56
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
WowCore вроде-бы 6-ку и использует (со слов RomanRom2)
нет. раньше мы этот SnifferID использовали как идентификатор снифера. у нас их тьма тараканья ведь
а сейчас предлагается использовать как идетификатор команды, а то 255 значений для всех всевозможных сниферов может когда нибудь не хватить.
RomanRom2 вне форума   Ответить с цитированием
Старый 25.07.2010, 21:00   #57
user456
Новичок
 
Регистрация: 31.03.2010
Сообщений: 22
Сказал(а) спасибо: 2
Поблагодарили 23 раз(а) в 8 сообщениях
user456 На верном пути
По умолчанию

Ну а признак что сниф не левый с эмулей? А то мы с ромкой в аське вроде со своими мыслями согласились...
И вопрос, обсуждаемый между собой, но не вошедший сюда:
1. снифами скорее всего делиться никто не будет, не только от жадности но и чтобы не получать баны
2. отсюда мы вроде как согласились что если что и шарить, то сразу пакеты респонсов и подобного
3. откуда следует что инфа должна быть заранее обработана и обсуждение формата пакетов raw вроде бури в стакане воды

Итого: смысл обсуждать? Только в случае одинаковых на всех обработчиков сниффов. У нас с ним по-любому будут разные. Он заряжает тулзу, которая буквами выводит "ну ты и крут, еще 500 айтемов". Я если тащу, так вытаскиваю всю нужную именно мне инфу (последовательно обрабатывая можно много чего еще вытащить). Даже не юзаю тиккаунты потому что в каждом пятом пакете они есть.
user456 вне форума   Ответить с цитированием
Старый 25.07.2010, 21:32   #58
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

вовк, на самом деле ситуация немного проще:

во первых, снифы публично лучше не выкладывать, это да. этого никто и не делает.
все обмены снифами происходят так или иначе - приватно. например мне заливают на фтп, я тут же их сливаю и удаляю. или через файловый обменник, ссылка которого передается опять же почти приватно - через аську, через irc, где ее получат только узкий круг людей. так что с этим проблем вроде как нет и врят ли будут.

во вторых, обычно происходит как: я даю снифер "своим людям", они снифают. таких "своих людей" может быть несколько и я точно уверен, что они снифают офф, что снифер не утекает. и так думаю делают все разработчики. следовательно можно быть в некоторой степени уверенным, что снифы не с левые с пираток всяких.

во третьих, жадничать снифами - это детский сад. я уже третий год пытаюсь донести до людей, что снифы сами по себе ценности никакой не имеют. ценность имеет инфа из них. точнее инфа, умело использованная в твоих проектах. вот это и есть конкурентная инфа. будем рассматривать вопрос как конкурентный, у нас ведь тут у всех соревновательный дух через чур развит. т.е. идея вот в чем:
- ну что такого прятать в снифе, что можно взять снифер и отснифать еще раз? т.е. если у тебя есть снифф входа на батлграунд, а у меня его нет, то рано или поздно я это тоже отснифаю.
- тоже самое и с респонсами. ну нет у меня сейчас в базе итема с номером 77777, а у тебя есть. ну отснифаю я его все равно, никуда он не денется

вот формат опкодов - наверное можно назвать конкурентными знаниями. т.е. к примеру у одних разработчиков не разобран какой то опкод до конца и недостающий функционал они делают согласано своей самодеятельности. что приводит к ухудшению качества продукта в целом. тут да, соглашусь.

так что респонсы и всякие А9 (заселенку) можно легко и смело шарить. т.е. писать такой тул, которому скармливается снифф и который оставляет вот эти пакеты. т.е. пакеты, которые явно не спалят аккаунт, пакеты, в которых отсуствует гуид перса, его имя и т.п. в этом нам нужно соревноваться, я считаю. т.е. КАК СДЕЛАНО, а не СКОЛЬКО.

но шаринг снифов - это всего лишь вопрос времени, мне кажется. рано или поздно все поймут, что от того что у тебя прямо сейчас есть в базе итем 77777 или стоит моб в какой то локации, а у меня нет - не делает твой сервер "круче", назовем это так. но это все конечно возможно не случится никогда

более того, раз уж у нас сложилась такая ситуация, что сниферами занимается все несколько человек и мы все друг друга знаем - то между нами можно смело этими снифами обмениватся. ничего страшного не произойдет.

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

так что буря в стакане возможно и выглядет утопичной, но возьми например jpeg, или там mp3. все по своему и по разному их "обрабатывают". paint по проще, photoshop по круче. ну и что. так что я считаю все равно это создаст некоторое удобство. время покажет, какое именно.

Последний раз редактировалось RomanRom2; 25.07.2010 в 21:36.
RomanRom2 вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Konctantin (25.07.2010)
Старый 25.07.2010, 22:23   #59
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

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

А так, он совершенно бесполезен (пример, wdb-cache, на данный момент мало кто его может прочитать).
__________________
Konctantin вне форума   Ответить с цитированием
Старый 25.07.2010, 23:21   #60
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

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

а сейчас тему видно? отпишитесь кто нибудь...
__________________
Konctantin вне форума   Ответить с цитированием
Старый 25.07.2010, 23:44   #62
Fmut
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 42
Сказал(а) спасибо: 4
Поблагодарили 5 раз(а) в 5 сообщениях
Fmut На верном пути
По умолчанию

а смысл этого всего если не выкладывать снифы тоннами в паблик? да и желательно сам снифер давать в паблик, иначе тонн снифов небудет.

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

Цитата:
Сообщение от Fmut Посмотреть сообщение
а смысл этого всего если не выкладывать снифы тоннами в паблик? да и желательно сам снифер давать в паблик, иначе тонн снифов небудет.
я думаю это тоже вопрос времени. снифер давать в паблик я бы не стал, ибо его можно поиметь близзам и добавить в варден.
ну а в снифах, как я уже и говорил, куча инфы, связанной с твоим персом. при желании можно вычислить тебя и забанить. опять же повторюсь - при желании.
если помните может, мы выкладывали в паблик много снифов во времена 2.4.х, и даже сниферы выкладывали. никто что то не забанил...

Цитата:
Сообщение от Fmut Посмотреть сообщение
у меня сейчас все просто, читаю уже декодированные данные из памяти клиента и складываю в файл.... ничего более хитрого пока и не нужно было
хмм... и обработчик второго соединения нашел? у нас что то не получилось. наш инжектор видит только первую сессию.
RomanRom2 вне форума   Ответить с цитированием
Старый 25.07.2010, 23:59   #64
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

смысл есть всегда, давайте простой пример:
идет обсуждение чего-то, надо пример сниффа с оффа, вы выкладываете этот снифф, и все, кому надо смогут прочитать его, и можно на основании конкретных данных вести конструктивную беседу.
__________________
Konctantin вне форума   Ответить с цитированием
Старый 26.07.2010, 00:45   #65
Fmut
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 42
Сказал(а) спасибо: 4
Поблагодарили 5 раз(а) в 5 сообщениях
Fmut На верном пути
По умолчанию

Как Ромка уже и сказал, в снифах самое ценное данные для респонзов и заселения.

И насчет общего вклада в единое целое, раз уж так опасно выкладывать снифы, можно выкладывать данные.
Сделать единую базу с официальными данными без custom-полей и привязки к конкретному проекту.
И парсилку этой базы со снифов можно написать и централизованно.

А мелкие снифы определенных механик особо и не нужно выкладывать в паблик, каждый сам может отснифать, да и устаревают они быстро.
Fmut вне форума   Ответить с цитированием
Старый 26.07.2010, 07:30   #66
munche
Гость
 
Сообщений: n/a
По умолчанию

А как насчет англоязычного коммунити? До них эту идею донесли или они сами по себе как обычно?
  Ответить с цитированием
Старый 26.07.2010, 08:23   #67
Dereka
MaNGOS Dev
 
Аватар для Dereka
 
Регистрация: 08.03.2010
Адрес: Ханты-Мансийск
Сообщений: 28
Сказал(а) спасибо: 27
Поблагодарили 13 раз(а) в 8 сообщениях
Dereka На верном пути
По умолчанию

Цитата:
Сообщение от munche Посмотреть сообщение
А как насчет англоязычного коммунити? До них эту идею донесли или они сами по себе как обычно?
сейчас из этого комьюнити только wcell и trinity
и если, как говорит Авен, "сделать единую базу с официальными данными без custom-полей и привязки к конкретному проекту" они всё равно узнают про эту базу, им будет выгодно делать такой же формат снифов.. правда нужно будет формат задокументировать на англицком

кстати забыли в этом списке про кобольд
Код:
0x00 - Wad // 2005 и ранее
0x01 - Nomad // 2005 и ранее
0x02 - WoWCore // 2005
0x03 - Mangos (TOM_RUS) // 2005, намеренно не отделяю по времени TOM_RUS от Mangos
0x04 - User456 // 2006
0x05 - Delfin // 2006
0x06 - Burlex // Хотя начинал он явно раньше, я точно не знаю, когда.
0x07 - WCell
0x08 - LordJZ
0x09 - Йоха // 2010
0x0A - abdula123 // 2010
Dereka вне форума   Ответить с цитированием
Старый 26.07.2010, 09:36   #68
Nomad
Новичок
 
Регистрация: 25.05.2010
Сообщений: 11
Сказал(а) спасибо: 1
Поблагодарили 14 раз(а) в 5 сообщениях
Nomad На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
у тебя есть CMSG_AUTH_SESSION с именем аккунта
для целей безопасности аккаунта мой сниффер подключается позже, во время выбора чара.
ну ладно, буду писать хеш код в DevData
Nomad вне форума   Ответить с цитированием
Старый 26.07.2010, 20:49   #69
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

Цитата:
Сообщение от Dereka Посмотреть сообщение
сейчас из этого комьюнити только wcell и trinity
они всё равно узнают про эту базу, им будет выгодно делать такой же формат снифов..
а разве мангос из буржуев никто не делает? это чисто русский проект?
кажется в wcell один (или несколько) разработчиков русские, эмигранты. нет? разберуться, чай не шучу.

Цитата:
Сообщение от Dereka Посмотреть сообщение
кстати забыли в этом списке про кобольд
мы разве исторический список эмуляторов составляем? в таком случае, что мангос, что тринити, что кобольд, что вовд, что штормкрафт - одна фигня. а еще забыли какого нить wowwow, да много кого

или все же список команд разработчиков, написавших снифер и использующих его? я вот уже не совсем уверен, что список актуальный. tiawps чей? sniffitz чей?

на самом деле это не важно, список чистая формальность. главное - формат разработали. и лично мне он очень даже нравится. и как прется с него WoWCore Team - тоже не пересказать )) и самое главное - мы его ВМЕСТЕ сделали. и что ж - кажется можно считать, что обсуждение закончено, кажется добавить уже нечего. можно ускорить процесс - можно считать что документ разработан и начать его ревью. скажем до конца месяца, до 31 июля.

прошу ревьюверов еще раз найти немного своего драгоценного времени и взглянуть на описание. хорошенько подумать и выдать свой конклюжн в виде "принято/не принято" и дать мне знать об этом любыми способами. сюда на форум, в личку, в аську, в ирц, в почту, по телефону, лично, не знаю я буду обновлять этот пост. напоминаю список ревьюверов:

Последний раз редактировалось Konctantin; 27.07.2010 в 12:28.
RomanRom2 вне форума   Ответить с цитированием
Старый 26.07.2010, 21:00   #70
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Они же другие форматы используют (sqlite, xml)


P.S. Может действительно использовать использовать не один байт на идентификатор сниффера, а несколько, или может вообще строку?

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

ну понятно что другие. все мы каждый свои форматы используем. для чего ж мы тут тогда все собрались...
пусть переделывают

Цитата:
Сообщение от LordJZ Посмотреть сообщение
P.S. Может действительно использовать использовать не один байт на идентификатор сниффера, а несколько, или может вообще строку?
строку, если хотите - пишите в DevelopersData. копирайты там вские, название снифера и его версию, билд, свн ревижн, точное время создания... вощем чо хотите

Последний раз редактировалось RomanRom2; 26.07.2010 в 21:27.
RomanRom2 вне форума   Ответить с цитированием
Старый 26.07.2010, 21:26   #72
Dereka
MaNGOS Dev
 
Аватар для Dereka
 
Регистрация: 08.03.2010
Адрес: Ханты-Мансийск
Сообщений: 28
Сказал(а) спасибо: 27
Поблагодарили 13 раз(а) в 8 сообщениях
Dereka На верном пути
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
мы разве исторический список эмуляторов составляем? в таком случае, что мангос, что тринити, что кобольд, что вовд, что штормкрафт - одна фигня. а еще забыли какого нить wowwow, да много кого

или все же список команд разработчиков, написавших снифер и использующих его? я вот уже не совсем уверен, что список актуальный. tiawps чей? sniffitz чей?
не так меня понял..
у кобольдов свой формат снифов это 100%.. и снифер вроде свой был.
Месяца полтора к ним не заходил, не знаю как у них сейчас обстоят дела))
Dereka вне форума   Ответить с цитированием
Старый 26.07.2010, 22:04   #73
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

В таком случае дополнений/предложений не имею.
LordJZ вне форума   Ответить с цитированием
Старый 26.07.2010, 22:09   #74
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

кеп, голос отдан вам - "ДА".
__________________
Konctantin вне форума   Ответить с цитированием
Старый 26.07.2010, 22:18   #75
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Цитата:
Сообщение от Dereka Посмотреть сообщение
не так меня понял..
у кобольдов свой формат снифов это 100%.. и снифер вроде свой был.
Месяца полтора к ним не заходил, не знаю как у них сейчас обстоят дела))
В таком случае, ничто не мешает и им присвоить snifferID.
До тех пор, пока формат окончательно не утвержден, в списке могут быть подвижки (с поправкой на "давность" команды), после утверждения данный список может быть увеличен только путем добавления номера в конец.
VDm вне форума   Ответить с цитированием
Старый 26.07.2010, 22:21   #76
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Цитата:
PHP код:
struct MainHeader
{
  
char signature***91;3***93;; // 'RAW'.
  
word version// 0x0003
  
byte snifferID
  
uint build
  
char language***91;4***93;; // Язык клиента: 'ruRU', 'enGB' и т.д.
  
byte sessionKey***91;40***93;; 
  
uint optionalHeaderLength
}; 
Зачем так экономить байты в хидере? Можно до dword'ов округлить все поля, вдруг захочется хранить версию или snifferID немного по другому, но не теряя совместимости? До 64 байт очень хорошо округляется
zergtmn вне форума   Ответить с цитированием
Старый 26.07.2010, 22:25   #77
VDm
Новичок
 
Регистрация: 22.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 1 сообщении
VDm На верном пути
По умолчанию

Цитата:
Сообщение от zergtmn Посмотреть сообщение
Зачем так экономить байты в хидере? Можно до dword'ов округлить все поля, вдруг захочется хранить версию или snifferID немного по другому, но не теряя совместимости? До 64 байт очень хорошо округляется
Это не совсем так, дело в том, что формат не просто так имеет версию 3, есть, например, версии 2.0, 2.1. В них первые пять байт - это сигнатура(3) + версия(2), эти поля менять точно нельзя, иначе существующие программные решения не смогут понять о какой версии идет речь.
На фоне этого, смысл расширять snifferID теряется. Мы уже говорили, что практическое значение snifferID крайне невелико, каждая команда разработчиков имеет полную свободу самовыражения в optionalHeader и optionalData.

Последний раз редактировалось VDm; 26.07.2010 в 22:28.
VDm вне форума   Ответить с цитированием
Старый 27.07.2010, 07:54   #78
Fall0ut
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Dereka Посмотреть сообщение
не так меня понял..
у кобольдов свой формат снифов это 100%.. и снифер вроде свой был.
Месяца полтора к ним не заходил, не знаю как у них сейчас обстоят дела))
Спасибо, Дерека. Я в тебе не сомневался )) Ты один из тех немногих, которых я уважаю как людей. Ну да ладно...
Тут в чем дело.. К нам именно по этому сабжу никаких предложений не поступало. Да и нужно ли это им? )
Эта тема для Мангос и Ко или же для всего эму коммунити? Я думаю все же первое..
  Ответить с цитированием
Старый 27.07.2010, 11:04   #79
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

никаких замечаний/возражений не имею. По большому счету мне вообще все равно какой формат у файлов будет, переписать свой софт под поддержку формата 3.0 - не проблема.
Главное во всем этом то, что люди будут придерживаться некоего единого стандарта, а уж какой там сам стандарт - это не столь важно.
Йоха вне форума   Ответить с цитированием
Старый 27.07.2010, 12:26   #80
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Цитата:
Эта тема для Мангос и Ко или же для всего эму коммунити? Я думаю все же первое..
нет, это не первое, это для всех...
Цитата:
Главное во всем этом то, что люди будут придерживаться некоего единого стандарта, а уж какой там сам стандарт - это не столь важно
придерживаться будут, если все будет устраивать, как раз в этом смысл всей этой дискуссии...

Перенес список ревьюверов в первый пост.
__________________

Последний раз редактировалось Konctantin; 27.07.2010 в 12:30.
Konctantin вне форума   Ответить с цитированием
Ответ


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

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



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


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