PKT 3.0
Материал из YTDB DataBase
LordJZ (Обсуждение | вклад) (Новая страница: «PKT 3.0 — первая централизованная версия формата файлов дампов сетевых пакетов PKT. Специф…») |
LordJZ (Обсуждение | вклад) (→Спецификация RAW) |
||
(7 промежуточных версий не показаны.) | |||
Строка 9: | Строка 9: | ||
Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (''little-endian''). | Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (''little-endian''). | ||
- | Именование файла | + | === Именование файла === |
{|border=1 cellspacing=0 cellpadding=3 | {|border=1 cellspacing=0 cellpadding=3 | ||
|'''Поле'''||'''Значение''' | |'''Поле'''||'''Значение''' | ||
Строка 18: | Строка 18: | ||
|} | |} | ||
- | Основной заголовок | + | === Основной заголовок === |
{|border=1 cellspacing=0 cellpadding=3 | {|border=1 cellspacing=0 cellpadding=3 | ||
|'''Поле'''||'''Длина'''||'''Содержание''' | |'''Поле'''||'''Длина'''||'''Содержание''' | ||
|- | |- | ||
- | |Подпись файла||3 байта||Последовательно символы 'PKT' в кодировке ASCII | + | |Подпись файла||3 байта||Последовательно символы 'PKT' в кодировке ASCII |
|- | |- | ||
- | |Версия формата||2 байта||Последовательно байты младшей версии, старшей версии. Для PKT 3.0 обязательно 0x00, 0x03 | + | |Версия формата||2 байта||Последовательно байты младшей версии, старшей версии. Для PKT 3.0 обязательно 0x00, 0x03 |
|- | |- | ||
- | |Идентификатор сниффера||1 байт||См. [[Идентификатор сниффера в PKT]] | + | |Идентификатор сниффера||1 байт||См. [[Идентификатор сниффера в PKT]] |
|- | |- | ||
- | |Номер билда клиента||4 байта|| | + | |Номер билда клиента||4 байта|| |
|- | |- | ||
- | |Язык||4 байта||Последовательно байты | + | |Язык клиента||4 байта||Последовательно байты кода языка клиента в кодировке ASCII, например 'enGB' |
|- | |- | ||
- | |Ключ сессии||40 байт||Необязательно. Может быть заполнено нулями. | + | |Ключ сессии||40 байт||Необязательно. Может быть заполнено нулями. |
|- | |- | ||
- | |Длина опциональных данных||4 байта|| | + | |Длина опциональных данных||4 байта|| |
|- | |- | ||
|Опциональные данные||||Длина этого поля указана в предыдущем поле. | |Опциональные данные||||Длина этого поля указана в предыдущем поле. | ||
|} | |} | ||
- | + | === Фрагмент сетевого потока === | |
{|border=1 cellspacing=0 cellpadding=3 | {|border=1 cellspacing=0 cellpadding=3 | ||
|'''Поле'''||'''Длина'''||'''Содержание''' | |'''Поле'''||'''Длина'''||'''Содержание''' | ||
|- | |- | ||
- | |Направление движения пакета||4 байта||Последовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII | + | |Направление движения пакета||4 байта||Последовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII |
|- | |- | ||
- | |Время получения пакета||4 байта||Количество прошедших секунд с эпохи Unix (UTC) | + | |Время получения пакета||4 байта||Количество прошедших секунд с эпохи Unix (UTC) |
|- | |- | ||
- | |Ticks получения пакета||4 байта||Количество прошедших миллисекунд с момента запуска операционной системы | + | |Ticks получения пакета||4 байта||Количество прошедших миллисекунд с момента запуска операционной системы |
|- | |- | ||
- | |Длина опциональных данных||4 байта|| | + | |Длина опциональных данных||4 байта|| |
|- | |- | ||
- | |Длина данных пакета||4 байта||Не менее 4 байт | + | |Длина данных пакета||4 байта||Не менее 4 байт |
|- | |- | ||
- | |Опциональные данные||||Длина указана в поле «длина опциональных данных». | + | |Опциональные данные||||Содержание этого поля контролируется разработчиком программы-сниффера.<br />Длина указана в поле «длина опциональных данных». |
|- | |- | ||
- | |Данные пакета||||Длина указана в поле «длина | + | |Данные пакета||||Содержит данные одного пакета World of Warcraft.<br />Длина указана в поле «длина данных пакета». Первые 4 байта этого поля — опкод пакета. |
|} | |} | ||
== Спецификация RAW == | == Спецификация RAW == | ||
- | '' | + | |
+ | Вначале файла находится основной заголовок. В основном заголовке находятся общие данные о дампе. После основного заголовка один за другим находятся фрагменты сетевого потока с заголовками. | ||
+ | |||
+ | Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (''little-endian''). | ||
+ | |||
+ | === Именование файла === | ||
+ | {|border=1 cellspacing=0 cellpadding=3 | ||
+ | |'''Поле'''||'''Значение''' | ||
+ | |- | ||
+ | |Имя файла||Любое | ||
+ | |- | ||
+ | |Расширение файла||Обязательно '''.raw''' | ||
+ | |} | ||
+ | |||
+ | === Основной заголовок === | ||
+ | |||
+ | {|border=1 cellspacing=0 cellpadding=3 | ||
+ | |'''Поле'''||'''Длина'''||'''Содержание''' | ||
+ | |- | ||
+ | |Подпись файла||3 байта||Последовательно символы 'RAW' в кодировке ASCII | ||
+ | |- | ||
+ | |Версия формата||2 байта||Последовательно байты младшей версии, старшей версии. Для PKT 3.0 обязательно 0x00, 0x03 | ||
+ | |- | ||
+ | |Идентификатор сниффера||1 байт||См. [[Идентификатор сниффера в PKT]] | ||
+ | |- | ||
+ | |Номер билда клиента||4 байта|| | ||
+ | |- | ||
+ | |Язык клиента||4 байта||Последовательно байты кода языка клиента в кодировке ASCII, например 'enGB' | ||
+ | |- | ||
+ | |Ключ сессии||40 байт|| | ||
+ | |- | ||
+ | |Длина опциональных данных||4 байта|| | ||
+ | |- | ||
+ | |Опциональные данные||||Содержание этого поля контролируется разработчиком программы-сниффера.<br />Длина этого поля указана в предыдущем поле. | ||
+ | |} | ||
+ | |||
+ | === Фрагмент сетевого потока === | ||
+ | |||
+ | {|border=1 cellspacing=0 cellpadding=3 | ||
+ | |'''Поле'''||'''Длина'''||'''Содержание''' | ||
+ | |- | ||
+ | |Направление движения пакета||4 байта||Последовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII | ||
+ | |- | ||
+ | |Время получения пакета||4 байта||Количество прошедших секунд с эпохи Unix (UTC) | ||
+ | |- | ||
+ | |Ticks получения пакета||4 байта||Количество прошедших миллисекунд с момента запуска операционной системы | ||
+ | |- | ||
+ | |Длина опциональных данных||4 байта|| | ||
+ | |- | ||
+ | |Длина данных пакета||4 байта||Не менее 4 байт | ||
+ | |- | ||
+ | |Опциональные данные||||Содержание этого поля контролируется разработчиком программы-сниффера.<br />Длина указана в поле «длина опциональных данных». | ||
+ | |- | ||
+ | |Данные пакета||||Содержит данные одного пакета TCP протокола.<br />Длина указана в поле «длина данных пакета». | ||
+ | |} | ||
+ | |||
+ | == Ссылки == | ||
+ | |||
+ | * [[PKT 3.0 (English)|Спецификация PKT 3.0 на английском языке]] |
Текущая версия на 17:22, 15 августа 2011
PKT 3.0 — первая централизованная версия формата файлов дампов сетевых пакетов PKT.
Спецификация состоит из описаний двух форматов для хранения расшифрованных и зашифрованных пакетов World of Warcraft, файлов с расширениями .pkt и .raw соответственно.
Содержание |
Спецификация PKT
Вначале файла находится основной заголовок. В основном заголовке находятся общие данные о дампе. После основного заголовка один за другим находятся фрагменты сетевого потока с заголовками.
Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (little-endian).
Именование файла
Поле | Значение |
Имя файла | Любое |
Расширение файла | Обязательно .pkt |
Основной заголовок
Поле | Длина | Содержание |
Подпись файла | 3 байта | Последовательно символы 'PKT' в кодировке ASCII |
Версия формата | 2 байта | Последовательно байты младшей версии, старшей версии. Для PKT 3.0 обязательно 0x00, 0x03 |
Идентификатор сниффера | 1 байт | См. Идентификатор сниффера в PKT |
Номер билда клиента | 4 байта | |
Язык клиента | 4 байта | Последовательно байты кода языка клиента в кодировке ASCII, например 'enGB' |
Ключ сессии | 40 байт | Необязательно. Может быть заполнено нулями. |
Длина опциональных данных | 4 байта | |
Опциональные данные | Длина этого поля указана в предыдущем поле. |
Фрагмент сетевого потока
Поле | Длина | Содержание |
Направление движения пакета | 4 байта | Последовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII |
Время получения пакета | 4 байта | Количество прошедших секунд с эпохи Unix (UTC) |
Ticks получения пакета | 4 байта | Количество прошедших миллисекунд с момента запуска операционной системы |
Длина опциональных данных | 4 байта | |
Длина данных пакета | 4 байта | Не менее 4 байт |
Опциональные данные | Содержание этого поля контролируется разработчиком программы-сниффера. Длина указана в поле «длина опциональных данных». | |
Данные пакета | Содержит данные одного пакета World of Warcraft. Длина указана в поле «длина данных пакета». Первые 4 байта этого поля — опкод пакета. |
Спецификация RAW
Вначале файла находится основной заголовок. В основном заголовке находятся общие данные о дампе. После основного заголовка один за другим находятся фрагменты сетевого потока с заголовками.
Для полей длиннее 1 байта по-умолчанию используется порядок байт «от младшего к старшему» (little-endian).
Именование файла
Поле | Значение |
Имя файла | Любое |
Расширение файла | Обязательно .raw |
Основной заголовок
Поле | Длина | Содержание |
Подпись файла | 3 байта | Последовательно символы 'RAW' в кодировке ASCII |
Версия формата | 2 байта | Последовательно байты младшей версии, старшей версии. Для PKT 3.0 обязательно 0x00, 0x03 |
Идентификатор сниффера | 1 байт | См. Идентификатор сниффера в PKT |
Номер билда клиента | 4 байта | |
Язык клиента | 4 байта | Последовательно байты кода языка клиента в кодировке ASCII, например 'enGB' |
Ключ сессии | 40 байт | |
Длина опциональных данных | 4 байта | |
Опциональные данные | Содержание этого поля контролируется разработчиком программы-сниффера. Длина этого поля указана в предыдущем поле. |
Фрагмент сетевого потока
Поле | Длина | Содержание |
Направление движения пакета | 4 байта | Последовательно символы 'SMSG' или 'CMSG' для пакетов от сервера к клиенту и от клиента к серверу соответственно в кодировке ASCII |
Время получения пакета | 4 байта | Количество прошедших секунд с эпохи Unix (UTC) |
Ticks получения пакета | 4 байта | Количество прошедших миллисекунд с момента запуска операционной системы |
Длина опциональных данных | 4 байта | |
Длина данных пакета | 4 байта | Не менее 4 байт |
Опциональные данные | Содержание этого поля контролируется разработчиком программы-сниффера. Длина указана в поле «длина опциональных данных». | |
Данные пакета | Содержит данные одного пакета TCP протокола. Длина указана в поле «длина данных пакета». |