Pour vider le trafic USB sous Linux, vous avez besoin du usbmon
module, qui existe depuis Linux 2.6.11 . Les informations sur ce module sont disponibles /usr/src/linux/Documentation/usb/usbmon.txt
dans l'arborescence des sources Linux. Selon la distribution que vous utilisez et la version de cette distribution, ce module peut être intégré au noyau ou peut être un module chargeable; s'il s'agit d'un module chargeable, selon la distribution que vous utilisez et la version de cette distribution, il peut ou non être chargé pour vous. S'il s'agit d'un module chargeable et non chargé, vous devrez le charger avec la commande
modprobe usbmon
qui doit être exécuté en tant que root.
Les versions de libpcap antérieures à 1.0 n'incluent pas le support USB, vous aurez donc besoin d' au moins libpcap 1.0.0 .
Pour les versions du noyau antérieures à 2.6.21 , le seul mécanisme de capture de trafic USB disponible est un mécanisme basé sur du texte qui limite la quantité totale de données capturées pour chaque bloc USB brut à environ 30 octets. Il n'y a aucun moyen de changer cela sans patcher le noyau. Si debugfs n'est pas déjà monté sur /sys/kernel/debug
, assurez-vous qu'il y est monté en émettant la commande suivante en tant que root:
mount -t debugfs / /sys/kernel/debug
Pour la version 2.6.21 du noyau et les versions ultérieures , il existe un protocole binaire pour le traçage des paquets USB qui n'a pas cette limitation de taille. Pour cette version du noyau, vous aurez besoin de libpcap 1.1.0 ou plus récent , car le support USB de libpcap 1.0.x utilise, mais ne gère pas correctement, le mécanisme mappé en mémoire pour le trafic USB, que libpcap utilisera s'il est disponible - il ne peut pas être rendu indisponible, donc libpcap l'utilisera toujours.
Dans libpcap 1.0.x, les périphériques de capture sur USB ont le nom usbn, où n est le numéro du bus. Dans libpcap 1.1.0 et versions ultérieures, ils portent le nom usbmonn.
Vous aurez également besoin d'un Wireshark 1.2.x ou plus récent .