#hex #wireshark #pcap #tshark #hexdump
Вопрос:
Мне требуется команда Linux для отображения шестнадцатеричного файла PCAP. В настоящее время я использую команду xxd PcapFile.pcap. С помощью этого я получаю шестнадцатеричный файл pcap вместе с другими байтами, вставленными между и в конце, которые не принадлежат файлу pcap. Эти байты имеют значение возврата каретки, новой строки, новой страницы, нулевых символов и т.д. Я не хочу, чтобы hexdump отображал эти символы. Есть ли правильная команда, которая может отображать только байты данных из файла pcap.
напр.:
0000000: d4c3 b2a1 0200 0400 0000 0000 0000 0000 ................
0000010: 0000 0400 0100 0000 590d 9d60 abe9 0700 ........Y..`....
0000020: 3c00 0000 3c00 0000 0010 f393 8870 000c <...<........p..
0000030: 2998 7ecb aefe 1002 0014 0000 0080 9000 ).~.............
0000040: 0000 0101 0000 0000 0019 fffe 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 590d 9d60 abe9 0700 3c00 0000 ....Y..`....<...
Байты, которые я получаю в конце и между ними, являются:
END: 0000 f404 0000
BETWEEN Each Packet: 0000 f404 0000 0600 0000 f404 0000 0000 0000 0000 0000 dc56 2d01 d204 0000 d204
Комментарии:
1. Если xxd печатает символы в шестнадцатеричном файле, то они существуют в файле. Если это маловероятный случай, когда xxd печатает символы, отсутствующие в файле, это было бы ошибкой.
2. @RossJacobs Могу ли я поделиться с вами файлом pcap, чтобы вы могли взглянуть, что именно здесь происходит не так ???
Ответ №1:
Если вы ищете шестнадцатеричный файл всего файла, то вы можете использовать hexdump
, как в:
hexdump -vC PcapFile.pcap
Ответ №2:
Если под «байтами данных» вы подразумеваете необработанные шестнадцатеричные байты пакетов, так что 24-байтовый заголовок файла и 16-байтовые заголовки пакетов не печатаются, одна команда, которая напечатает шестнадцатеричные данные вместе с анализом содержимого пакета, является
tcpdump -xx -n -r {file name}
который будет печатать такую информацию, как
17:48:39.708517 ARP, Request who-has 10.120.4.255 tell 10.120.4.1, length 46
0x0000: ffff ffff ffff 00e0 5280 7600 0806 0001
0x0010: 0800 0604 0001 00e0 5280 7600 0a78 0401
0x0020: 0000 0000 0000 0a78 04ff 0000 0000 0000
0x0030: 0000 0000 0000 0000 0000 0000
Для этого требуется, чтобы у вас был установлен tcpdump.
Другая команда, которая будет печатать только шестнадцатеричный текстовый дамп каждого пакета без разбора, является
tshark -Q -x -r {file name}
(Он будет печатать как шестнадцатеричный, так и текстовый; нет никакого способа подавить текстовую часть дампа. В тексте показаны печатаемые символы ASCII, если только пакет не предназначен для какого-либо протокола IBM, где данные находятся в формате EBCDIC, и в этом случае выводится ASCII, но он переведен с EBCDIC.)
Для этого требуется, чтобы у вас была установлена Wireshark (хотя, если вы устанавливаете из пакета, поставляемого вашей ОС, в нем могут быть отдельные пакеты «Wireshark core» и «Wireshark GUI», и, если это так, для этого не требуется пакет «Wireshark GUI»).
Комментарии:
1. tcpdump-xx-n-r {имя файла} => Эта команда не работает с файлом pcap. Там нет вывода каких-либо данных.
2. Вы ввели путь к файлу pcap, а не буквальную строку «{имя файла}», верно? Вывод, который я вставил в ответ на эту команду, был скопирован и вставлен из окна эмулятора моего терминала после выполнения этой команды в файле pcap, который у меня есть.
3. Я ввел имя файла, как и в том же каталоге. Он не отображает никаких данных.
4. Какую именно команду вы набрали? И производилась ли вообще какая-либо продукция? Если да, то каков был результат?