Reverse Engineering von USB-Signalen


8

Angenommen, es gibt einen USB-Stick, der speziell zum Speichern von Datums- oder Tagesdaten oder beliebigen Daten dient. Um auf die Daten zugreifen zu können, benötigen Sie die Software.

Gibt es eine Möglichkeit, die USB-Signale zu analysieren und Ihre eigene Hardware zum Lesen der Werte auf dem Flash-Laufwerk zu erstellen? Welche Methoden gibt es dafür?

Antworten:


7

Ja.

Ich war sehr zufrieden mit der Software von HHD . Ich habe den seriellen Port-Monitor vor einigen Jahren für ein umfangreiches Reverse Engineering verwendet, und die HHD-Software war gut auf diese Arbeit zugeschnitten.

Ich habe mich mit ihrer USB-Sniffer-Version beschäftigt, aber nie die Vollversion gekauft. Früher gab es eine kostenlose Testversion, die etwas nützlich war. Sie können es noch haben.

Auf jeden Fall bin ich mit USB über den Kopf gegangen, weil ich nicht herausfinden konnte, wie man den "Treiber" in Windows erstellt. Wenn Sie Linux verwenden, ist das Projekt möglicherweise viel einfacher, da die gesamte Treiber-E / A-Logik auf niedriger Ebene im Kernel-Code leicht zugänglich ist. Außerdem bietet Linux 2.6 einige Geräte unter / dev an, mit denen direkt an das USB-Gerät gesendet / empfangen werden kann, ohne dass spezielle Module / Treiber erforderlich sind. Ideal für die Entwicklung.


Ich bin daran interessiert, ein Reverse Engineering der USB-Kommunikation des MSP430 Launchpad Dev Boards unter Linux durchzuführen. Wissen Sie, wo ich unter / dev weitere Informationen zu den Geräten finden kann, mit denen ich direkt kommunizieren kann?
Pfyon

1
Ich habe vor einiger Zeit die Linux-USB-Schnittstelle für den Benutzerbereich untersucht. (Ich habe nur für Windows und OS X programmiert.) Die einzigen Informationen, die ich über die / proc-Schnittstelle finden konnte, waren in der libusb-Bibliothek (sie verwendet die Schnittstelle) und den Kernelquellen selbst (ich erinnere mich nicht an den Link oder den Dateinamen nicht mehr).
JPC

4

Reverse Engineering USB kann eine Herausforderung sein; Es gibt viele Daten zu sortieren.

Zuerst müssen Sie das Protokoll verstehen; Ich fand USB auf den Punkt gebracht ziemlich gut.

Dann brauchen Sie eine Möglichkeit, den Verkehr zu sammeln und zu analysieren. Es erfordert mindestens etwas Software und möglicherweise Hardware. Ich benutze einen Hardware-USB-Analysator bei der Arbeit, aber sie sind teuer. Ich weiß, dass es möglich ist, Virtualbox zu verwenden und den USB-Verkehr unter Linux zu sammeln, aber ich habe es nie getan. Sie können mit Virtual USB Analyzer beginnen .


Ich benutze immer wieder einen Ellisys USB-Analysator. Wenn jemand sagt "X-Gerät ist teuer", lautet die richtige Antwort "Im Vergleich zu was?" (In einem kürzlich bei der Arbeit durchgeführten Fall wurde mir gesagt, dass etwas in meinem Code nicht funktioniert. Ich habe ein paar Minuten mit den Ellisys gebraucht, um zu beweisen, dass das Problem woanders liegt, und die meiste Zeit war es, Dinge anzuschließen Führen Sie den Test durch.)
John R. Strohm

2

Ich denke, Sie beziehen sich auf USB-Dongles, die zum Schutz der Software verwendet werden. Sie verwenden keine Standard-USB-HID- oder MASS-STORAGE-Geräteklassen und implementieren normalerweise ihr eigenes Protokoll und stellen ihren eigenen PC-seitigen Treiber für die Kommunikation mit ihnen bereit. Die PC-Anwendung fordert sie normalerweise auf, auf gesendete verschlüsselte Nachrichten korrekt zu antworten, oder sie stellen einige wichtige Informationen bereit, die in der PC-Anwendung nicht vorhanden sind und von der Anwendung benötigt werden, um ordnungsgemäß zu funktionieren. Diese Nachrichten können wie alles andere über USB abgehört werden, aber Vorsicht, da Sie möglicherweise am Rande laufen. Sich über USB zu informieren ist eine Sache, aber das Veröffentlichen von Arbeiten, die den Softwareschutz verletzen, ist nicht legal und wird strafrechtlich verfolgt. Tu es nicht. Ich entschuldige mich, wenn ich die Frage falsch verstanden habe.


In einigen Ländern ist es illegal, aber nicht in allen.
Pfyon

Das Entschlüsseln des Datenverkehrs ist sowieso nicht trivial.
Erik Friesen

2

Sie können den USB-Verkehr mit Wireshark analysieren: http://wiki.wireshark.org/CaptureSetup/USB

Wireshark ist eine kostenlose Software, die vor allem für ihre Netzwerkanalysefunktionen bekannt ist, aber seit einiger Zeit auch USB-Sniffing ausführt.


Es ist erwähnenswert, dass für die USB-Erfassung grundsätzlich Linux erforderlich ist. Sie können den Windows-USB-Verkehr erfassen, indem Sie Windows in einer VM unter Linux ausführen .
Connor Wolf

Wenn Sie eine Windows USB-Sniffing-Lösung wünschen, kann VMWare den USB-Verkehr mit einem Windows-Host protokollieren, obwohl das eigentliche USB-Gerät noch mit einer VM verbunden sein muss.
Connor Wolf

2

Nur wenige berühmte Hacker (die Spielekonsolen rückgängig machen) entwickeln derzeit ein Tool zur Analyse des USB-Protokolls. Es heißt OpenVizsla. Es befindet sich derzeit in der Entwicklung, wird aber bald abgeschlossen sein. Es ist ein komplettes Open Source Projekt.

Überprüfen Sie diesen Link http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer/posts


Die aktualisierten Links für dieses Projekt sind: openvizsla.org und github.com/openvizsla/ov_ftdi
Glenn 'devalias'


0

Es gibt unzählige Software- und Hardwarelösungen. Das Erfassen und Analysieren der Daten ist kein Problem. Sie müssen jedoch wissen, was sich auf dem USB-Stick befindet. Ich habe Leute gesehen, die USB-Sticks mit eingebetteten Prozessoren und AES-Verschlüsselung entwickelt haben. (Lokal verschlüsselt / entschlüsselt). Ohne genau zu wissen, was dieser USB-Stick ist, ist es schwierig zu wissen, was genau Sie aus dem Verkehr lernen können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.