Для скидання USB-трафіку в Linux вам потрібен usbmon
модуль, який існує з Linux 2.6.11 . Інформація про цей модуль доступна у /usr/src/linux/Documentation/usb/usbmon.txt
вихідному дереві Linux. Залежно від розповсюдженого вами дистрибутива та версії цього дистрибутива, цей модуль може бути вбудований у ядро або може бути модулем, що завантажується; якщо це модуль для завантаження, залежно від дистрибутиву, який ви використовуєте, та версії цього дистрибутиву, він може або не може бути завантажений для вас. Якщо це модуль, що завантажується, і не завантажений, вам доведеться завантажити його командою
modprobe usbmon
який повинен запускатися як root.
версії libpcap до 1.0 не включають підтримку USB, тому вам знадобиться принаймні libpcap 1.0.0 .
Для версій ядра до 2.6.21 єдиний доступний механізм захоплення трафіку USB - це текстовий механізм, який обмежує загальний обсяг даних, захоплених для кожного необробленого блоку USB, приблизно 30 байтами. Неможливо змінити це, не виправляючи ядро. Якщо налагодження ще не встановлено /sys/kernel/debug
, переконайтеся, що він встановлений там, видавши наступну команду як root:
mount -t debugfs / /sys/kernel/debug
Для ядра версії 2.6.21 і пізнішої версії існує двійковий протокол відстеження USB-пакетів, у якого немає такого обмеження розміру. Для цієї версії ядра вам знадобиться libpcap 1.1.0 або новішої версії , оскільки підтримка USB libpcap 1.0.x використовує, але неправильно обробляє механізм, нанесений на пам'ять для трафіку USB, який libpcap використовуватиме, якщо він доступний - він не може бути зробити його недоступним, тому libpcap завжди використовуватиме його.
У libpcap 1.0.x пристрої для захоплення на USB мають назву usbn, де n - номер шини. У libpcap 1.1.0 та пізніших версіях вони мають назву usbmonn.
Вам також знадобиться Wireshark 1.2.x або новіший .