Как определить наличие или отсутствие данных радиооптации в необработанных байтах файла pcap? Я не использую libpcap, а сам изучаю полезную нагрузку. Мне кажется, что я могу создать новый файл с tcpdump, который включает эту функцию, но если мне предоставлен файл, который может иметь или не иметь эту функцию, тогда невозможно определить, включают ли это необработанные байты или нет. Единственное, что происходит со мной, - это поиск количества байтов в include_len и orig_len в данных pcap.pcap: обнаружение присутствия или отсутствия заголовка лучевой кавычки
0
A
ответ
0
Проверяя тип заголовка канального уровня в заголовке файла pcap; если это 127, то у вас есть заголовки радиоиоп, а затем заголовки 802.11.
Тип заголовка канального уровня в заголовке файла pcap (и тип заголовка канального уровня в блоке описания интерфейса в файле pcap-ng) имеет значение, которое является одним из значений, приведенных в the tcpdump.org list of link-layer header type values.
0
Тип линии передачи данных включен в заголовок файла pcap.
От WireShark Doc, вы видите, что тип канала передачи данных содержится в байтах 21-24
typedef struct pcap_hdr_s {
guint32 magic_number; /* magic number */
guint16 version_major; /* major version number */
guint16 version_minor; /* minor version number */
gint32 thiszone; /* GMT to local correction */
guint32 sigfigs; /* accuracy of timestamps */
guint32 snaplen; /* max length of captured packets, in octets */
guint32 network; /* data link type */
} pcap_hdr_t;
Вот пример PCAP заголовка файла с радио водопроводную заголовка
0xd4 0xc3 0xb2 0xa1
0x02 0x00 0x04 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0xff 0xff 0x00 0x00
0x7f 0x00 0x00 0x00 --> 0x7f = 127 = LINKTYPE_IEEE802_11_RADIOTAP
0x0d 0x06 0x5c 0x4a
0xee 0x1a 0x02 0x00
0xac 0x00 0x00 0x00
0xac 0x00 0x00 0x00
в то время как в в другом примере ниже, у нас есть еще один ссылочный уровень типа
0xd4 0xc3 0xb2 0xa1
0x02 0x00 0x04 0x00
0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00
0xff 0xff 0x00 0x00
0x69 0x00 0x00 0x00 --> 0x69 = 105 = LINKTYPE_IEEE802_11
0x3a 0xcb 0x38 0x56
0xc5 0x73 0x00 0x00
0xd4 0x00 0x00 0x00
0xd4 0x00 0x00 0x00
Keep конечно, конечно)