Jak przechwycić pakiety USB specyficzne dla urządzenia za pomocą tshark?
Znam identyfikator urządzenia (0x0009) i identyfikator dostawcy (0x08f7), w jaki sposób mogę określić dokładnie urządzenie, które chcę przechwycić, za pomocą tshark?
Czasami warto spojrzeć na tshark (1) - strona Linux człowiek i tshark - strona Wireshark człowieka i -f
i -i
przełączników opcji.
Dodatkowo spójrz na filtry przechwytywania Wireshark i odniesienie do filtru wyświetlania USB Wireshark, które mogą być przydatne w tworzeniu odpowiednich poleceń do filtrowania i dopasowywania do twoich potrzeb.
Możesz użyć wyrażenia filtru przechwytywania, takiego jak usb.device_address == #
lub usb.addr == #
za pomocą -f
przełącznika, aby nakazać sniffowi przechwytywanie tylko pakietów z określonego urządzenia USB.
Filtr przechwytywania lub odczytu można określić za pomocą - f lub - R
opcja, w którym to przypadku całe wyrażenie filtru musi być określone jako pojedynczy argument (co oznacza, że jeśli zawiera spacje, musi być cytowane), lub może być określone za pomocą argumentów wiersza polecenia po argumentach opcji, w którym to przypadku wszystkie argumenty po argumentach filtru są traktowane jako wyrażenie filtru. Filtry przechwytywania są obsługiwane tylko podczas przechwytywania na żywo; filtry odczytu są obsługiwane podczas przechwytywania na żywo i podczas odczytu pliku przechwytywania, ale wymagają od TShark większej pracy podczas filtrowania, więc może być bardziej prawdopodobne, że stracisz pakiety pod dużym obciążeniem, jeśli używasz filtra odczytu. Jeśli filtr jest podany wraz z argumentami wiersza poleceń po argumentach opcji, jest to filtr przechwytywania, jeśli przechwytywanie jest wykonywane (tj.-r podano opcję).
-f <capture filter>
Ustaw wyrażenie filtru przechwytywania.
Ta opcja może wystąpić wiele razy. Jeśli zostanie użyty przed pierwszym wystąpieniem opcji -i, ustawi domyślne wyrażenie filtru przechwytywania. W przypadku użycia po opcji -i ustawia wyrażenie filtru przechwytywania dla interfejsu określonego przez ostatnią opcję -i występującą przed tą opcją. Jeśli wyrażenie filtru przechwytywania nie jest określone, używane jest domyślne wyrażenie filtru przechwytywania, jeśli jest podane.
źródło
-i <capture interface>|-
Ustaw nazwę interfejsu sieciowego lub potoku do przechwytywania pakietów na żywo.
Nazwy interfejsów sieciowych powinny pasować do jednej z nazw wymienionych w „ tshark -D ” (opisanych powyżej); liczba, jak podaje „ tshark -D ”, może być również użyta. Jeśli używasz systemu UNIX, „ netstat -i ” lub „ ifconfig -a ” może również działać w celu wyświetlenia nazw interfejsów, chociaż nie wszystkie wersje systemu UNIX obsługują opcję -a dla ifconfig.
Jeśli nie określono żadnego interfejsu, TShark przeszukuje listę interfejsów, wybierając pierwszy interfejs niezwiązany z pętlą zwrotną , jeśli istnieją interfejsy niezwiązane z pętlą zwrotną , i wybierając pierwszy interfejs pętli zwrotnej, jeśli nie ma interfejsów niezwiązanych z pętlą zwrotną. Jeśli nie ma żadnych interfejsów, TShark zgłasza błąd i nie rozpoczyna przechwytywania.
Nazwy potoków powinny być nazwami FIFO (nazwane potoki) lub „-”, aby odczytać dane ze standardowego wejścia. Dane odczytywane z potoków muszą mieć standardowy format libpcap.
Uwaga: wersja Win32 TShark nie obsługuje przechwytywania z rur!
źródło
usb.device_address == #
i po prostu musisz podać adres urządzenia dla tej wartości.