Aby zrzucić ruch USB w systemie Linux, potrzebujesz usbmon
modułu, który istnieje od Linuksa 2.6.11 . Informacje o tym module są dostępne w /usr/src/linux/Documentation/usb/usbmon.txt
drzewie źródeł Linux. W zależności od używanej dystrybucji i wersji tej dystrybucji moduł ten może być wbudowany w jądro lub może być modułem ładowalnym; jeśli jest to moduł ładowalny, w zależności od używanej dystrybucji i wersji tej dystrybucji, może on zostać załadowany lub nie. Jeśli jest to moduł do załadowania i nie jest załadowany, będziesz musiał go załadować za pomocą polecenia
modprobe usbmon
który musi być uruchomiony jako root.
Wersje libpcap wcześniejsze niż 1.0 nie zawierają obsługi USB, więc będziesz potrzebował co najmniej libpcap 1.0.0 .
W wersjach jądra wcześniejszych niż 2.6.21 jedynym dostępnym mechanizmem przechwytywania ruchu USB jest mechanizm tekstowy, który ogranicza całkowitą ilość danych przechwyconych dla każdego surowego bloku USB do około 30 bajtów. Nie można tego zmienić bez łatania jądra. Jeśli debugfs nie jest jeszcze zamontowany /sys/kernel/debug
, upewnij się, że jest tam zamontowany, wydając następującą komendę jako root:
mount -t debugfs / /sys/kernel/debug
W przypadku jądra w wersji 2.6.21 i nowszych istnieje protokół binarny do śledzenia pakietów USB, który nie ma takiego ograniczenia rozmiaru. Do tej wersji jądra będziesz potrzebować libpcap 1.1.0 lub nowszego , ponieważ obsługa USB libpcap 1.0.x używa, ale nie obsługuje poprawnie, odwzorowanego w pamięci mechanizmu ruchu USB, którego libpcap użyje, jeśli jest dostępny - nie może być stał się niedostępny, więc libpcap zawsze go użyje.
W libpcap 1.0.x urządzenia do przechwytywania na USB mają nazwę usbn, gdzie n jest numerem magistrali. W libpcap 1.1.0 i nowszych mają one nazwę usbmonn.
Potrzebny będzie również Wireshark 1.2.x lub nowszy .