Как перехватить USB-пакеты для конкретного устройства с помощью tshark?
Я знаю идентификатор устройства (0x0009) и идентификатор поставщика (0x08f7), как я могу указать точное устройство, которое я хочу захватить, через tshark?
Возможно, вы захотите взглянуть на справочную страницу tshark(1) - Linux, справочную страницу tshark - Wireshark и параметры -f
и -i
.
Кроме того, обратите внимание на фильтры захвата Wireshark и справочник по фильтрам USB-дисплея Wireshark, которые могут оказаться полезными при создании соответствующих команд для фильтрации и удовлетворения ваших потребностей.
Вы можете использовать выражение фильтра захвата, например usb.device_address == #
или usb.addr == #
с ключом -f
чтобы указать снифферу захватывать только пакеты с определенного USB-устройства.
Фильтр захвата или чтения может быть задан с помощью опции -f или -R соответственно, в этом случае все выражение фильтра должно быть указано как один аргумент (что означает, что если оно содержит пробелы, оно должно быть заключено в кавычки), или может быть указан с аргументами командной строки после аргументов option, и в этом случае все аргументы после аргументов фильтра обрабатываются как выражение фильтра. Фильтры захвата поддерживаются только в режиме реального времени; Фильтры чтения поддерживаются при выполнении прямого захвата и при чтении файла захвата, но требуют, чтобы TShark выполнял больше работы при фильтрации, так что вы можете с большей вероятностью потерять пакеты при большой нагрузке, если вы используете фильтр чтения. Если фильтр указан с аргументами командной строки после аргументов параметра, это фильтр захвата, если выполняется захват (т. Е. Если не была указана опция -r), и фильтр чтения, если файл захвата читается (т. Е. если указана опция -r ).
-f <capture filter>
Установите выражение фильтра захвата.
Эта опция может встречаться несколько раз. Если он используется до первого появления параметра -i, он устанавливает выражение фильтра захвата по умолчанию. Если используется после параметра -i, он устанавливает выражение фильтра захвата для интерфейса, указанного в последнем параметре -i, встречающемся перед этим параметром. Если выражение фильтра захвата не установлено специально, используется выражение фильтра захвата по умолчанию, если оно предусмотрено.
источник
-i <capture interface>|-
Задайте имя сетевого интерфейса или канала, который будет использоваться для захвата пакетов в реальном времени.
Имена сетевых интерфейсов должны соответствовать одному из имен, перечисленных в « tshark -D » (описано выше); число, как сообщает « tshark -D », также может быть использовано. Если вы используете UNIX, « netstat -i » или « ifconfig -a » также могут работать для вывода списка имен интерфейсов, хотя не все версии UNIX поддерживают параметр -a для ifconfig.
Если интерфейс не указан, TShark ищет список интерфейсов, выбирает первый интерфейс без обратной связи, если есть какие-либо интерфейсы без обратной связи, и выбирает первый интерфейс с обратной связью, если нет никаких интерфейсов без обратной связи. Если интерфейсов нет вообще, TShark сообщает об ошибке и не запускает захват.
Имена каналов должны быть либо именем FIFO (именованного канала), либо '' - '' для чтения данных из стандартного ввода. Данные, считываемые из каналов, должны быть в стандартном формате libpcap.
Примечание: версия TShark для Win32 не поддерживает захват из каналов!
источник