Почему мои сгенерированные ath9k заголовки RadioTap кажутся искаженными?
Я собираю пакеты 802.11, используя scapy в Ubuntu 16.04 (ядро 4.4). Заголовки RadioTap для моих пакетов имеют следующие присутствующие флаги:
present=TSFT+Flags+Rate+Channel+dBm_AntSignal+b14+b29+Ext
Учитывая описание RadioTap, я ожидаю, что канал будет начинаться с 10-го байта после заголовка и предшествующих полей (8 для TSFT + 1 для флагов и скорости). Канал имеет выравнивание 2, поэтому нет необходимости в заполнении. И все же это то, что находится в незакодированной части пакета:
notdecoded=' \x08\x00\x00\x00\x00\x00\x00f\xc0 \x02\x00\x00\x00\x00\x10\x02l\t\xa0\x00\xa9\x00\x00\x00\xa9\x00'
В этом случае номер канала фактически появляется в байтах 18-19 ('l\t' = 2412), и я не уверен точно, какой байт содержит уровень сигнала в дБм.
У кого-нибудь есть идея относительно того, чего мне не хватает?
1 ответ
Нашел ответ, покопавшись в спецификации чуть глубже:
Scapy не анализирует расширенные заголовки, как указано битом-32 (хотя он сказал мне о них, указав +Ext выше). Эти дополнительные заголовки помещаются в начале "не декодированной" части пакета. Я думаю, что scapy должен, как минимум, удалить эти расширенные заголовки из не декодированных, чтобы избежать путаницы в будущем.
В этом конкретном случае есть два дополнительных 32-битных расширенных заголовка растрового изображения, на которые приходится дополнительные 8 байтов.
Если кто-то хочет написать ответ с более подробной информацией, я приму его, в противном случае я уберу этот ответ и приму его навсегда.