Извлечь указатель c смещение байта с помощью tshark - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть pcap пакетов ICMP. Я пытаюсь использовать tshark для извлечения данных полезной нагрузки, чтобы я мог извлечь указанное c смещение байтов.

Документация tshark очень запутана, особенно для меня, новичка.

Я много искал и пытаюсь собрать команду для достижения цели.

Я могу выполнить следующую команду:

shark -r test.pcapng -Y icmp -z flow,icmp,network > output.bin

Но он выводит только список пакетов, как это было показано в Wireshark.

Например, я пытаюсь извлечь из каждого пакета следующее смещение байтов (смещение 22):

enter image description here

Как бы я go извлекал заданное c смещение байта с помощью tshark?

РЕДАКТИРОВАТЬ:

Выполнение следующей команды возвращает только часть данных полезной нагрузки, как мне получить все эти данные?

tshark -r test.pcapng -Y "frame.number == 13" -T fields -e data -w output.bin

enter image description here

1 Ответ

1 голос
/ 22 февраля 2020

Я предоставил ответ на https://ask.wireshark.org/question/14795/extract-specific-byte-offset-using-tshark/, но для удобства я суммирую 2 возможных решения, которые я представил здесь. В двух словах:

  1. Подсвеченный байт на изображении выглядит как поле TTL заголовка IP. Если это поле вас интересует, вы можете получить его через:

    tshark -r test.pcapng -Y "frame.number == 13" -T fields -e ip.ttl -w output.bin
    
  2. Если вы ищете более общее решение для печати 22-го байта пакета, независимо от того, является ли это поле ip.ttl или нет, вы можете использовать решение, такое как:

    tshark -r test.pcapng -Y "frame.number == 13" -x -w output.bin | grep "^0010" | cut -d ' ' -f 9
    

2-е решение выше также иллюстрирует, как вы можете сбросить все байты; это делается с помощью опции tshark -x.

...