2008-09-22 11 views
30

De temps en temps, j'ai besoin de vider le trafic USB sous Windows, principalement pour prendre en charge le matériel sous Linux, donc mon objectif principal est de produire des fichiers de vidage pour l'analyse de protocole.Comment renifler un port USB sous Windows?

Pour le trafic USB, il semble que SniffUsb est le gagnant ... Il fonctionne sous Windows XP   (mais pas plus tard) et a une interface graphique beaucoup plus agréable que les versions antérieures. Il produit énormes fichiers de vidage, mais tout est là.

Cependant, mon périphérique est en fait un périphérique série USB, je suis donc passé à Portmon, ce qui peut perturber le trafic du port série sans l'overhead USB.

+6

Était-ce une question alors? – GEOCHET

+0

J'imagine que c'était une fois une question, mais que l'utilisateur a répondu lui-même, et édité cette réponse dans la question au lieu de le classer comme une réponse. (Boo!) –

+2

Portmon est Windows 3.2 ou plus, et ne prend pas en charge 64 bits. SniffUSB n'est pas supporté sur Windows Vista ou 7. –

Répondre

3

Personnellement, j'utiliser QEMU ou KVM et instrument leur code USB passthrough, puis utilisez libusb au prototype du pilote de remplacement dans l'espace utilisateur (ce dernier bit que je l'ai fait avant, writing USB device drivers in Python est amusant!).

+3

Sous Linux, vous utiliseriez Wireshark, sans code de profil ou quoi que ce soit d'aussi compliqué. Cependant lire à la fin de la question. – gbjbaanb

+2

Quand Wireshark at-il reniflé usb? Nous ne parlons pas d'Ethernet ici. Je sais que le questionneur pose des questions sur la série USB, mais puisque le sujet pose des questions sur le reniflage USB en général, les gens qui trouvent cette question s'attendent à une réponse adaptée au sujet général. –

+0

Thnaks, dans une prochaine étape j'essaierai probablement de l'exécuter sous qemu ou kvm. – dpavlin

5

USBSnoop fonctionne aussi - et est gratuit.

Ou, vous pouvez acheter un convertisseur USB vers Ethernet et utiliser n'importe quel renifleur de réseau que vous préférez pour voir les données.

+1

Si vous regardez l'URL de SniffUsb, il comprend USBSnoop car il est basé sur: – dpavlin

+3

Un renifleur de réseau et un convertisseur usb-ethernet vont seulement renifler ethernet. Parce qu'il ne convertit pas l'usb brut, il ne vous laissera pas voir les paquets usb individuels qui est ce qu'un outil comme usbsnoop fournira. –

9
  1. Puisque les gens ne semblent pas réaliser, Wireshark ne trafic USB moniteur et dispose d'un analyseur pour elle; mais la capture est que cela ne fonctionne que sous Linux. Wireshark sur Windows ne le fera pas.

  2. Il est possible de brancher le périphérique USB que vous souhaitez surveiller, avec une machine Linux (avec Wireshark en cours d'exécution) et votre machine Windows et d'utiliser simplement le périphérique USB sous Windows.

  3. Problème avec ce qui précède? Je ne sais pas comment la machine Linux ou la machine Windows se détecteront mutuellement.

+7

USB utilise une topologie en étoile avec un seul hôte par bus, je ne sais pas comment vous vous attendez à connecter une boîte Linux à un bus hébergé par Windows, et même si vous le faisiez, il ne verrait pas le trafic vers d'autres périphériques (sauf si la boîte Linux était un hub). –

+0

@Ben: Ce qui peut fonctionner, cependant, est d'exécuter Windows à l'intérieur d'une machine virtuelle ... – SamB

+3

Wireshark peut maintenant sniffer des données USB sur des machines Windows aussi. – TafT

0

Busdog, un projet open source hosted on github, a bien fonctionné pour moi. Il a un pilote qu'il installe pour lui permettre de surveiller les communications USB. La fenêtre de configuration vous permet de réinstaller ou de retirer l'appareil à tout moment.

Vous pouvez sélectionner le périphérique USB souhaité dans une liste énumérée. Une fonctionnalité intéressante est d'avoir trace automatiquement un nouvel appareil qui est branché:

Enumerated USB devices

communications de données vers et à partir d'un analyseur de SWR je l'ingénierie inverse ont été capturés parfaitement:

USB-to-serial port communications captured

Questions connexes