PKT 3.1

Материал из YTDB DataBase

Перейти к: навигация, поиск

PKT 3.1 — формат файлов дампов сетевых пакетов PKT, преемник формата PKT 3.0.

Основной причиной создания PKT 3.1 стала невозможность PKT 3.0 хранить данные с нескольких соединение клиента World of Warcraft в RAW формате.[1][2]

Спецификация состоит из описаний двух форматов для хранения расшифрованных и зашифрованных пакетов World of Warcraft, файлов с расширениями .pkt и .raw соответственно.

Содержание

Спецификация PKT

Вначале файла находится основной заголовок. В основном заголовке находятся общие данные о дампе. После основного заголовка один за другим находятся фрагменты сетевого потока с заголовками.

Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (little-endian).

Именование файла

ПолеЗначение
Имя файлаЛюбое
Расширение файлаОбязательно .pkt

Основной заголовок

ПолеДлинаСодержание
Подпись файла3 байтаПоследовательно символы 'PKT' в кодировке ASCII
Версия формата2 байтаПоследовательно байты младшей версии, старшей версии. Для PKT 3.1 обязательно 0x01, 0x03
Идентификатор сниффера1 байтСм. Идентификатор сниффера в PKT
Номер билда клиента4 байта
Язык клиента4 байтаПоследовательно байты кода языка клиента в кодировке ASCII, например 'enGB'
Ключ сессии40 байтовНеобязательно. Может быть заполнено нулями.
Время начала записи дампа[3]4 байтаКоличество прошедших секунд с эпохи Unix (UTC)
Ticks начала записи дампа[3]4 байтаКоличество прошедших миллисекунд с момента запуска операционной системы
Длина опциональных данных4 байта
Опциональные данныеДлина этого поля указана в предыдущем поле.

Фрагмент сетевого потока

ПолеДлинаСодержание
Направление движения пакета4 байтаПоследовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII
Идентификатор соединения[3][4]4 байтаУникальный идентификатор TCP/IP соединения, которому принадлежит пакет
Ticks получения пакета4 байтаКоличество прошедших миллисекунд с момента запуска операционной системы
Длина опциональных данных4 байта
Длина данных пакета4 байтаНе менее 4 байт
Опциональные данныеСодержание этого поля контролируется разработчиком программы-сниффера.
Длина указана в поле «длина опциональных данных».
Данные пакетаСодержит данные одного пакета World of Warcraft.
Длина указана в поле «длина данных пакета». Первые 4 байта этого поля — опкод пакета.

Спецификация RAW

Вначале файла находится основной заголовок. В основном заголовке находятся общие данные о дампе. После основного заголовка один за другим находятся фрагменты сетевого потока с заголовками.

Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (little-endian).

Именование файла

ПолеЗначение
Имя файлаЛюбое
Расширение файлаОбязательно .raw

Основной заголовок

ПолеДлинаСодержание
Подпись файла3 байтаПоследовательно символы 'RAW' в кодировке ASCII
Версия формата2 байтаПоследовательно байты младшей версии, старшей версии. Для PKT 3.1 обязательно 0x01, 0x03
Идентификатор сниффера1 байтСм. Идентификатор сниффера в PKT
Номер билда клиента4 байта
Язык клиента4 байтаПоследовательно байты кода языка клиента в кодировке ASCII, например 'enGB'
Ключ сессии40 байт
Время начала записи дампа[3]4 байтаКоличество прошедших секунд с эпохи Unix (UTC)
Ticks начала записи дампа[3]4 байтаКоличество прошедших миллисекунд с момента запуска операционной системы
Длина опциональных данных4 байта
Опциональные данныеСодержание этого поля контролируется разработчиком программы-сниффера.
Длина этого поля указана в предыдущем поле.

Фрагмент сетевого потока

ПолеДлинаСодержание
Направление движения пакета4 байтаПоследовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII
Идентификатор соединения[3][4]4 байтаУникальный идентификатор TCP/IP соединения, которому принадлежит пакет
Ticks получения пакета4 байтаКоличество прошедших миллисекунд с момента запуска операционной системы
Длина опциональных данных4 байта
Длина данных пакета4 байтаНе менее 4 байт
Опциональные данныеСодержание этого поля контролируется разработчиком программы-сниффера.
Длина указана в поле «длина опциональных данных».
Данные пакетаСодержит данные одного пакета TCP протокола.
Длина указана в поле «длина данных пакета».

Ссылки

Примечания

  1. LordJZ пишет о невозможности хранения данных с нескольких соединений в PKT 3.0
  2. RomanRom2 пишет о необходимости создания нового формата
  3. 3,0 3,1 3,2 3,3 3,4 3,5 Новое в PKT 3.1
  4. 4,0 4,1 Поле «Время получения пакета» было заменено на «Идентификатор соединения»
Личные инструменты