Для файла .pcap влияет ли измененный магический номер 0xd4c3b2a1 на сетевой пакет? - PullRequest
0 голосов
/ 24 октября 2018

Например, когда magic_number равен 0xa1b2c3d4 , ether_type равен 0x0008 .

Тогда, если magic_number равен 0xd4c3b2a1 , e ther_type будет 0x0800 ?

У меня только .pcap файлы с магическим номером 0xa1b2c3d4 , поэтому я не могу проверить себя.

Или кто-то может загрузить файл .pcap , чей magic_number: 0xd4c3b2a1 , и тогда я смогу проанализировать себя.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Поле типа Ethernet всегда имеет байтовый порядок байтов («сеть») в пакете, поэтому для его чтения необходимо преобразовать байтовый порядок байтов в порядок байтов вашего компьютера, используя, например,, ntohs().

Это не зависит от порядка байтов хоста, который написал файл;использование ntohs() будет работать на всех машинах со всеми файлами pcap.

(Имейте в виду, однако, что есть машины, на которые вам нужно будет выбрать поле типа Ethernet - или любой другой многобайтовый интегралполе - байт за раз и собирает эти байты в значение, потому что эти машины перехватывают не выровненные обращения к памяти. См., например, EXTRACT_ макросы / функции в extract.h в источнике tcpdump.)

0 голосов
/ 26 октября 2018

Согласно man-странице tcpdump :

Это позволяет программному чтению файла определить, совпадает ли порядок байтов хоста, который записал файл, с порядком байтов хоста накакой файл читается, и, следовательно, нужно ли заменять байты значения в каждом файле и в пакете .

Я думаю,ответ - да.

...