Что такое магическое число pcap 0xc3d4a1b2?

Я пытаюсь написать программу для чтения файла pcap, захваченного в Linux (tcpdump версия 4.5.1 libpcap версия 1.5.3), но я не могу получить правильную замену байтов. Магическое число не является одним из ожидаемых значений (0xa1b2c3d4 или 0xd4c3b2a1), но равно 0xc3d4a1b2. команда 'file' правильно идентифицирует его (файл захвата tcpdump (little-endian) - версия 2.4 (Ethernet, длина захвата 65535)), а tcpdump -r читает его, но я не понимаю, как. Магическое число не выглядит для меня прямым порядком байтов или порядком байтов. Hexdump выглядит так:

0000000 c3d4 a1b2 0002 0004 0000 0000 0000 0000
0000010 ffff 0000 0001 0000 6be0 5a87 a747 0008

В каком порядке байтов находится этот файл?

1 ответ

Решение

Это, вероятно, просто, как данные отображаются. Я предполагаю, что вы используете hexdump, По умолчанию эта программа использует двухбайтовое шестнадцатеричное отображение, то есть она читает два байта и интерпретирует их как короткое число без знака:

 $ hexdump file.pcap
 0000000 c3d4 a1b2 ...

Чтобы получить побайтный дисплей, вы можете использовать, например, -C опция:

 $ hexdump -C file.pcap
 00000000  d4 c3 b2 a1  ...

Или вы можете использовать xxd:

 $ xxd file.pcap
 00000000: d4c3 b2a1 ...
Другие вопросы по тегам