прошу любить и жаловать, версия 3.1 - поддержка нескольких соединений в одном файле.
Редакция от 19 мая 2011, 14:00
- 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 connectionID;
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 connectionID;
uint tickCount;
uint optionalDataLength;
uint dataLength;
};
byte[optionalDataLength] optionalData;
byte[dataLength] data;
, где
- data включает в себя Opcode, выравненный до uint
- dataLength равен размеру data
- connectionID - любые числа на усмотрение разработчика, можно использовать socketID, можно автоинкремент. Важно что бы пакеты одной сессии можно было отличить от пакетов другой.
- 3. Имя файла.
- 3.1. имя файла
имя может быть произвольным и удобным каждому из разработчиков.
- 3.2. расширение файла
обязательно .raw или .pkt
Список ревьюверов тот же:
- Konctantin:
- LordJZ:
accepted
- TOM_RUS:
- RomanRom2:
accepted
- VDm:
- Deamon:
- Nomad:
- abdula123:
- user456:
- Aven:
- йоха:
ревью до 19 июня 2011г.