Что такое магическое число 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 ...