Вход в систему
Логин
Пароль
 

Sprint #26: Terrain.Сейчас на сайте 8 посетителей
WoWCore
История 2.0
История 1.0
SandBox

Ресурсы
Форум
Файлы

Документация
Литература
Ссылки


Здравствуйте,  Anonymous [ Вход ]

Тема: международный централизованный формат снифовНовая тема | Список тем

RomanRom2 ··· 24.07.2007, 13:28 ··· Ответить
редакция от 30 июля 2007 года.
ВНИМАНИЕ! исправлена ошибка в описании заголовков RAW данных, 9 июля 2010 года.
обратите внимание, поле "длина пакета" для RAW находится в начале заголовка, а для PKT - в конце.

имя файла-сниффа состоит из:
....
например:
8334.ROMANROM2.Jaedenar.4A55872D.pkt
8334.ROMANROM2.Jaedenar.4A5D4FE8.pkt
8334.ROMANROM2.The Maelstrom.4A5513EA.pkt
8334.ROMANROM2.The Maelstrom.4A558B3B.pkt


1. RAW-файлы
-------------------------
заголовок файла для кодированных данных:
- 3 байта: [R], [A], [W]
- 2 байта: версия снифа. в настоящий момент версия 2.1. в старшем байте хранится 1, в младшем 2
- 2 байта: билд клиента
- 40 байт: ключ
- ?? байт: данные

заголовок серверных данных RAW:
1 байт: 0xFF
4 байта: длина пакета
4 байта: DateTimeToUnix(Now)
4 байта: GetTickCount, тики, полученные с машины, где работал снифер (обычно - клиентская машина)
?? байт: пакет

заголовок клиентских данных RAW:
1 байт: 0xCC
4 байта: длина пакета
4 байта: DateTimeToUnix(Now)
4 байта: GetTickCount, тики, полученные с машины, где работал снифер (обычно - клиентская машина)
?? байт: пакет


2. PKT-файлы
-------------------------
заголовок файла для декодированных данных:
- 3 байта: [P], [K], [T]
- 2 байта: версия снифа. в настоящий момент версия 2.1. в старшем байте хранится 1, в младшем 2
- 2 байта: билд клиента
- 40 байт: ключ, все нули
- ?? байт: данные

заголовок серверных данных PKT:
1 байт: 0xFF
4 байта: DateTimeToUnix(Now)
4 байта: GetTickCount, тики, полученные с машины, где работал снифер (обычно - клиентская машина)
4 байта: длина пакета
?? байт: пакет

заголовок клиентских данных PKT:
1 байт: 0xCC
4 байта: DateTimeToUnix(Now)
4 байта: GetTickCount, тики, полученные с машины, где работал снифер (обычно - клиентская машина)
4 байта: длина пакета
?? байт: пакет

пакет в raw: то, что бы "поймано" на сокете.
пакет в pkt: игровой пакет без двух первых байт (длина). длина задана в хидере пакета.
RomanRom2 ··· 12.05.2008, 15:08 ··· Ответить
http://wowcore.ru/?ID=50
Slayer ··· 12.05.2008, 15:15 ··· Ответить
Ромка, думаешь это комуто надо будет?
Ну ломанется щас куча народу скачивать то что ты выложишь, потом будут думать нах тм это нужно.
Проще разговаривать с заинтересованными людьми, которым это нужно и интересно и смогут дать гарантию что снифы с офа и не куй знает откуда.
RomanRom2 ··· 12.05.2008, 16:28 ··· Ответить
заинтересованных людей становится очень много, аська по швам трещщит. со всеми разговаривать у меня уже нет ни времени ни желания.
мы предоставляем вот такой вот "сервис". кто хочет - пусть пользуется. кто не хочет - путь не пользуется. кто заинтересован и хочет помочь - велкам.
Slayer ··· 12.05.2008, 17:58 ··· Ответить
Мое скромное IMHO что люди сами еще не совсем поняли что они хотят и что им нужно. просто видят что то новое и начинаются метания.
Это как на 1wow было, асцент закрыли народ ломанулся на wcell с вопросами как ставить сие чудо, где база и т.д., даже не разобравшись, на каком этапе сервак и т.д. некоторые даже скомпилировать не смогли, но все равно просят бин версии мол щас запустим и глянем.

И щас похожая ситуация, вроде главный дев. одного из самых перспективных эмулей что то предложил, даже как бы общий ресурс и бесплатно и все в надежде, что а вдруг что то полезное для себя умыкнем или с девами станем на дружеской ноге и потом сервер поимеем на льготе ломанулись узнавать.
RomanRom2 ··· 12.05.2008, 18:44 ··· Ответить
вот пока не поняли, самое время унифицировать формат :)
Slayer ··· 13.05.2008, 10:52 ··· Ответить
ну глянем , авось что нить путное то и выйдет, а если нет, в принципе это нам ничем не повредит.
RomanRom2 ··· 13.05.2008, 11:11 ··· Ответить
именно. не понимаю, чего вы испугались... сниферы в принципе уже есть у всех, а мы сделаем шаг навстречу первыми. разве это плохо? :)
ЗЫ. сами по себе снифы ничего не дают. только в умелых руках снифы дают много инфы. более того, в рамках какого то проекта, эту инфу нужно бы по умному собрать, хранить и потом использовать. даже неправильно спроектированная архитектура данных даст множество ошибок и повлечет за собой неправильный архитект кода.
вот и получается, что снифы то есть, и даже есть возможность их получать, а толку то :) поэтому шаринг снифов - это не страшно :)
SeT ··· 28.06.2008, 06:57 ··· Ответить
Ну и куда все сниферы делись?
alien ··· 30.06.2010, 19:02 ··· Ответить
А можно новое описание заголовка.
А то вот нашел сорци WoWPacketViewer а там идет вот так
gr.ReadBytes(3); // PKT
gr.ReadBytes(2); // 0x02, 0x02
gr.ReadByte(); // 0x06 Что вот это??
Build = gr.ReadUInt16(); // build
gr.ReadBytes(4); // client locale
gr.ReadBytes(20); // packet key
gr.ReadBytes(64); // realm name
RomanRom2 ··· 01.07.2010, 02:14 ··· Ответить
версия 2.2 заголовка как то не прижилась. а сейчас она и не может быть использована, т.к. она создавалась в то короткое время, когда близзы сделали размер ключа 20 байт. с другой стороны в расшифрованном PKT ключ и не нужен уже. так что тут по сути 20 байт мусора :)

struct Header:
00: char(3) Signature // PKT
03: byte(2) Version // 0x02, 0x02 (2.2)
05: byte(1) Sniffer ID
06: word(1) Client Build
08: char(4) Client Language
0C: byte(20) Session Crypt Key
20: char(64) Realm Name
end struct

по поводу sniffer id:

1 - zProxy
2 - zLogger
3 - iLogger
4 - lspLogger

по мере их появления. помню кто то давно делал снифер и мы ему дали индекс 5. ну видимо уже и 6 бывает :)

PS. ставлю вот дотнет 4, что бы посмотреть на этот WoWPacketViewer ...
RomanRom2 ··· 01.07.2010, 02:26 ··· Ответить
а он чото не видит мои снифы...
alien ··· 01.07.2010, 08:16 ··· Ответить
да не совсем просто я тут для того чтобы проверить взял снифы с ftp(ну там архив еще на 200 мб лежит), вот их и пробовал открыть(но там видимо совсем старая версия).
Дак без изменений он не смог их открыть.
PS (ему надо расширение снифоф менять с pkt на bin
RomanRom2 ··· 01.07.2010, 12:43 ··· Ответить
смог открыть только xml от snifitz, да и то - не все открывает. на каких то валится.
так я не понял, пкт вьювер нужен чтоль? почему наш не используете?
alien ··· 01.07.2010, 14:58 ··· Ответить
Нет наоборот свой пишу )
Вот просто хотел узнать может что-то как0то изменилось в формате.
Вообщем как я понял актуальный формат тот что щас в первом посте темы.
RomanRom2 ··· 01.07.2010, 15:40 ··· Ответить
да, версия 2.1.
RomanRom2 ··· 09.03.2011, 02:03 ··· Ответить6154.PKT_3.0_Preview.pkt - 988 байт   
версия 3.0, редакция от 21 июля 2010 года.
тестовый pkt-снифф от LordJZ прилагается.

struct MainHeader
{
  char signature[3]; // 'RAW', 'PKT'
  byte version[2]; // 0x00, 0x03
  byte snifferID; 
  uint build; 
  char language[4]; // Язык клиента: 'ruRU', 'enGB' и т.д.
  byte sessionKey[40]; 
  uint optionalHeaderLength; 
};
byte[optionalHeaderLength] optionalData;
 
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

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

коды 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 ··· 08.08.2011, 14:07 ··· Ответить
версия 3.1, редакция от 31 июля 2011 года.

struct MainHeader
{
  char signature[3]; // 'RAW', '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;
 
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
- sessionID любые числа, однозначно идентифицирующее пакеты для разных сессий в рамках одного снифа

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

коды 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
Регистрация | Новая тема | Список тем


Copyright © 2005-2019 WoWCore Team