2008-09-22 6 views
30

Von Zeit zu Zeit muss ich den USB-Verkehr unter Windows dumpen, hauptsächlich um Hardware unter Linux zu unterstützen. Mein primäres Ziel ist es also, Dump-Dateien für die Protokollanalyse zu erstellen.Wie schnüffle ich einen USB-Anschluss unter Windows?

Für USB-Verkehr, so scheint es, dass SniffUsb der klare Gewinner ist ... Es funktioniert unter Windows XP   (aber nicht später) und hat eine viel schönere GUI als frühere Versionen. Es produziert riesige Dump-Dateien, aber alles ist da.

Allerdings ist mein Gerät in der Tat ein serielles USB-Gerät, also wandte ich mich an Portmon, die den seriellen Port-Verkehr ohne den USB-Overhead schnüffeln kann.

+6

War das eine Frage? – GEOCHET

+0

Ich stelle mir vor, es war einmal eine Frage, aber der Benutzer hat es selbst beantwortet und diese Antwort in die Frage editiert, anstatt sie als Antwort zu archivieren. (Boo!) –

+2

Portmon ist Windows 3.2 oder so und unterstützt 64-Bit nicht. SniffUSB wird unter Windows Vista oder 7 nicht unterstützt. –

Antwort

3

Persönlich würde ich QEMU oder KVM und Instrument nutzen, um ihren USB-Pass-Through-Code, und dann libusb verwenden, um die Ersatzfahrer im User-Space zum Prototyp (diese letztere Bit ich vorher gemacht habe, writing USB device drivers in Python Spaß!).

+3

Unter Linux würden wir Wireshark verwenden, keine ned, um Profil-Code oder etwas so Kompliziertes. Lesen Sie jedoch bis zum Ende der Frage. – gbjbaanb

+2

Wann hat Wireshark usb geschnüffelt? Wir sprechen hier nicht von Ethernet. Ich weiß, dass der Fragesteller nach USB-Serien fragt, aber da das Thema im Allgemeinen nach USB-Sniffing fragt, werden Leute, die diese Frage finden, eine Antwort erwarten, die für das gesamte Thema geeignet ist. –

+0

Thnaks, als nächsten Schritt werde ich wahrscheinlich versuchen, es unter qemu oder kvm zu betreiben. – dpavlin

5

USBSnoop funktioniert auch - und ist kostenlos.

Oder können Sie einen USB zu Ethernet Konverter kaufen und verwenden Sie, was auch immer Netzwerk-Sniffer Sie bevorzugen, um die Daten zu sehen.

+1

Wenn Sie die URL von SniffUsb betrachten, enthält sie USBSnoop, weil sie darauf basiert :-) – dpavlin

+3

Ein Netzwerk-Sniffer und ein USB-Ethernet-Konverter werden nur Ethernet schnüffeln. Weil es nicht den rohen USB umwandelt, lässt es dich die einzelnen usb Pakete nicht sehen, was ein Werkzeug wie usbsnoop zur Verfügung stellt. –

9
  1. Da die Menschen nicht zu erkennen scheinen, Wireshark tut Monitor USB-Verkehr und hat einen Parser für sie; aber der Haken ist, dass es nur unter Linux funktioniert. Wireshark unter Windows wird dies nicht tun.

  2. Es kann möglich sein, das USB-Gerät, das Sie überwachen möchten, zusammen mit einem Linux-Computer (mit laufendem Wireshark) und Ihrem Windows-Computer anzuschließen und nur das USB-Gerät unter Windows zu verwenden.

  3. Problem mit dem oben genannten? Ich weiß nicht, wie sich der Linux-Rechner oder der Windows-Rechner gegenseitig erkennt.

+7

USB verwendet eine Sterntopologie mit einem einzelnen Host pro Bus. Ich weiß nicht, wie Sie eine Linux-Box an einen von Windows gehosteten Bus anschließen, und selbst wenn, würden Sie keinen Verkehr zu anderen Geräten sehen (es sei denn, die Linux-Box war ein Hub). –

+0

@Ben: Was aber funktioniert, ist Windows in einer VM laufen zu lassen ... – SamB

+3

Wireshark kann jetzt auch USB-Daten auf Windows-Maschinen schnüffeln. – TafT

0

Busdog, ein Open-Source-Projekt hosted on github, hat gut für mich gearbeitet. Es hat einen Treiber installiert, damit es die USB-Kommunikation überwachen kann. Im Konfigurationsfenster können Sie das Gerät jederzeit neu installieren oder entfernen.

Sie können das gewünschte USB-Gerät aus einer Aufzählungsliste auswählen. Ein nettes Feature ist es automatisch zu haben, ein neues Gerät verfolgen, die angeschlossen ist: Ich war Reverse Engineering erfasst wurden einwandfrei

Enumerated USB devices

Datenkommunikation zu und von einem SWR-Analysator:

USB-to-serial port communications captured

Verwandte Themen