Para volcar el tráfico USB en Linux, necesita el usbmon
módulo, que existe desde Linux 2.6.11 . La información sobre ese módulo está disponible /usr/src/linux/Documentation/usb/usbmon.txt
en el árbol fuente de Linux. Dependiendo de la distribución que esté utilizando y la versión de esa distribución, ese módulo podría estar integrado en el núcleo o podría ser un módulo cargable; si se trata de un módulo que se puede cargar, según la distribución que esté utilizando y la versión de esa distribución, podría o no cargarse por usted. Si es un módulo cargable y no está cargado, deberá cargarlo con el comando
modprobe usbmon
que debe ejecutarse como root.
Las versiones de libpcap anteriores a 1.0 no incluyen soporte USB, por lo que necesitará al menos libpcap 1.0.0 .
Para las versiones del kernel anteriores a 2.6.21 , el único mecanismo de captura de tráfico USB disponible es un mecanismo basado en texto que limita la cantidad total de datos capturados para cada bloque USB sin procesar a aproximadamente 30 bytes. No hay forma de cambiar esto sin parchear el kernel. Si debugfs aún no está montado /sys/kernel/debug
, asegúrese de que esté montado allí emitiendo el siguiente comando como root:
mount -t debugfs / /sys/kernel/debug
Para la versión del kernel 2.6.21 y posterior , existe un protocolo binario para rastrear paquetes USB que no tiene esa limitación de tamaño. Para esa versión del núcleo, necesitará libpcap 1.1.0 o posterior , porque el soporte USB libpcap 1.0.x usa, pero no maneja correctamente, el mecanismo mapeado en memoria para el tráfico USB, que libpcap usará si está disponible; no puede ser no está disponible, por lo que libpcap siempre lo usará.
En libpcap 1.0.x, los dispositivos para capturar en USB tienen el nombre usbn, donde n es el número del bus. En libpcap 1.1.0 y posteriores, tienen el nombre usbmonn.
También necesitará un Wireshark 1.2.xo posterior .