2008-09-22 15 views
30

De vez en cuando, necesito volcar el tráfico USB en Windows, principalmente para admitir hardware en Linux, por lo que mi objetivo principal es producir archivos de volcado para el análisis de protocolo.Cómo olfatear un puerto USB en Windows?

Para el tráfico USB, parece que SniffUsb es el claro ganador ... Funciona bajo Windows XP   (pero no más adelante) y tiene una interfaz gráfica de usuario mucho mejor que las versiones anteriores. Produce enormes archivos de volcado, pero todo está allí.

Sin embargo, mi dispositivo es de hecho un dispositivo serie USB, por lo que recurrí al Portmon que puede oler el tráfico del puerto serie sin la sobrecarga del USB.

+6

¿Esto era una pregunta? – GEOCHET

+0

Imagino que una vez fue una pregunta, pero que el usuario la respondió él mismo, y editó esa respuesta en lugar de presentarla como una respuesta. (¡Boo!) –

+2

Portmon es Windows 3.2 o algo así, y no admite 64 bits. SniffUSB no es compatible con Windows Vista o 7. –

Respuesta

3

En lo personal, me gustaría usar QEMU o KVM e instrumento de su código de paso a través de USB, y luego usar libusb crear un prototipo del controlador de sustitución en el espacio de usuario (este último poco que he hecho antes; writing USB device drivers in Python es divertido!).

+3

Bajo Linux, usaría Wireshark, no tiene nada que ver con el código del perfil ni nada complicado. Sin embargo, lea hasta el final de la pregunta. – gbjbaanb

+2

¿Cuándo Wireshark olfateó usb? No estamos hablando de Ethernet aquí. Sé que la persona que pregunta está preguntando acerca de la serie USB, pero dado que el tema pregunta sobre el rastreo USB en general, las personas que encuentren esta pregunta esperarán una respuesta adecuada para el tema general. –

+0

Thnaks, como paso siguiente, probablemente intente ejecutarlo bajo qemu o kvm. – dpavlin

5

USBSnoop funciona también - y es gratis.

O bien, puede comprar un convertidor USB a Ethernet y usar el sniffer de red que prefiera para ver los datos.

+1

Si mira la URL de SniffUsb, incluye USBSnoop porque está basado en él :-) – dpavlin

+3

Un sniffer de red y un convertidor usb-ethernet solo van a olfatear ethernet. Debido a que no está convirtiendo el usb en bruto, no le permitirá ver los paquetes usb individuales, que es lo que proporcionará una herramienta como usbsnoop. –

9
  1. Dado que la gente no parece darse cuenta de ello, hace Wireshark tráfico monitor USB y tiene un analizador para ello; pero la trampa es que solo funciona bajo Linux. Wireshark en Windows no hará esto.

  2. Es posible conectar el dispositivo USB que desea monitorear, junto con una máquina Linux (con Wireshark ejecutándose) y su máquina Windows, y simplemente use el dispositivo USB en Windows.

  3. ¿Tiene problemas con lo de arriba? No sé cómo la máquina Linux o la máquina Windows se detectarán entre sí.

+7

USB usa una topología en estrella con un solo host por bus, no sé cómo espera conectar un linux box a un bus alojado por Windows, y aunque lo hiciera, no vería el tráfico yendo a otros dispositivos (a menos que el linux box fuera un hub). –

+0

@Ben: lo que puede funcionar, sin embargo, es ejecutar Windows dentro de una VM ... – SamB

+3

Wireshark ahora también puede oler datos USB en máquinas con Windows. – TafT

0

Busdog, un proyecto de código abierto hosted on github, me ha funcionado bien. Tiene un controlador que instala para permitirle monitorear las comunicaciones USB. La ventana de configuración le permite reinstalar o quitar el dispositivo en cualquier momento.

Puede seleccionar el dispositivo USB que desee de una lista enumerada. Una característica interesante es tener que rastrear automáticamente un nuevo dispositivo que esté conectado:

Enumerated USB devices

Las comunicaciones de datos desde y hacia un analizador de cables de acero que estaba ingeniería inversa fueron capturados sin problemas:

USB-to-serial port communications captured

Cuestiones relacionadas