Rétro-ingénierie des signaux USB


8

Disons qu'il existe une clé USB spécialement conçue pour stocker des dates ou des jours ou une sorte de données arbitraires. Pour accéder aux données, vous devez disposer du logiciel.

Existe-t-il un moyen d'analyser les signaux USB et de créer votre propre matériel pour lire les valeurs sur le lecteur flash? Quelles méthodes existent pour le faire?

Réponses:


7

Oui.

J'ai été très satisfait du logiciel HHD . J'ai utilisé le moniteur de port série pour faire de la rétro-ingénierie lourde il y a quelques années et le logiciel HHD était bien adapté au travail.

J'ai essayé leur version sniffer USB mais je n'ai jamais acheté la version complète. À l'époque, il y avait une version d'essai gratuite qui était quelque peu utile. Ils l'ont peut-être encore.

En tout cas, je me suis mis au-dessus de ma tête avec USB parce que je ne pouvais pas comprendre comment faire le "pilote" dans Windows. Si vous utilisez Linux, le projet peut être un peu plus facile, car toute cette logique d'E / S de pilote de bas niveau est facilement accessible dans le code du noyau. En outre, Linux 2.6 propose certains périphériques sous / dev qui peuvent être utilisés pour envoyer / recevoir directement vers le périphérique USB sans avoir besoin de modules / pilotes spéciaux. Idéal pour le développement.


Je suis intéressé à faire de l'ingénierie inverse de la communication USB de la carte de développement du tableau de bord MSP430 sous Linux. Savez-vous où je pourrais trouver plus d'informations sur les périphériques sous / dev avec lesquels je peux communiquer directement?
pfyon

1
Je faisais des recherches sur l'interface USB de l'espace utilisateur Linux il y a quelque temps. (J'ai fini par programmer uniquement pour Windows et OS X) La seule information que j'ai pu trouver sur l'interface / proc était dans la bibliothèque libusb (elle utilise l'interface) et les sources du noyau lui-même (je ne me souviens pas du lien ou du nom de fichier plus).
jpc

4

La rétro-ingénierie USB peut être un défi; il y a beaucoup de données à trier.

Tout d'abord, vous devez comprendre le protocole; J'ai trouvé que l' USB en bref était assez bon.

Ensuite, vous avez besoin d'un moyen de collecter le trafic et de l'analyser. Il nécessite au moins quelques logiciels et éventuellement du matériel. J'utilise un analyseur USB matériel au travail, mais ils sont chers. Je sais qu'il est possible d'utiliser Virtualbox et de collecter le trafic USB sous Linux, mais je ne l'ai jamais fait. Vous pouvez commencer avec Virtual USB Analyzer .


J'utilise de temps en temps un analyseur USB Ellisys. Lorsque quelqu'un dit que "le périphérique X coûte cher", la bonne réponse est "Par rapport à quoi?" (Dans un cas récent au travail, on m'a dit que quelque chose dans mon code ne fonctionnait pas. Il m'a fallu quelques minutes avec l'Ellisys pour prouver que le problème était ailleurs, et la plupart du temps, c'était de connecter des choses à exécuter le test.)
John R. Strohm

2

Je pense que vous faites référence aux dongles USB utilisés pour la protection des logiciels. Ils n'utilisent pas de classes d'appareils USB HID ou MASS STORAGE standard et implémentent généralement leur propre protocole et fournissent leur propre pilote côté PC pour communiquer avec eux. L'application PC leur demande généralement de répondre correctement au message crypté envoyé, ou ils fournissent des informations critiques qui n'existent pas dans l'application PC, dont l'application a besoin pour fonctionner correctement. Ces messages peuvent être reniflés, comme toute autre chose via USB, mais méfiez-vous car vous pourriez marcher sur le bord. S'informer sur l'USB est une chose, mais publier un travail qui rompt la protection des logiciels n'est pas légal et sera poursuivi. Ne le fais pas. Je m'excuse si j'ai mal compris la question.


C'est illégal dans certains pays, mais pas dans tous.
pfyon

Le décodage du trafic ne sera de toute façon pas trivial.
Erik Friesen

2

Vous pouvez analyser le trafic USB avec Wireshark: http://wiki.wireshark.org/CaptureSetup/USB

Wireshark est un logiciel gratuit, surtout connu pour ses capacités d'analyse de réseau, mais depuis un petit moment, il renifle également USB.


Il convient de noter que la capture USB nécessite essentiellement Linux. Vous pouvez capturer le trafic USB de Windows en exécutant Windows sur une machine virtuelle, sous Linux .
Connor Wolf

Si vous voulez une solution de reniflement USB Windows, VMWare peut enregistrer le trafic USB avec un hôte Windows, mais vous devez toujours avoir le périphérique USB réel connecté via une machine virtuelle.
Connor Wolf

2

Peu de hackers célèbres (qui inversent les consoles de jeux) développent actuellement un outil pour analyser le protocole USB. Il s'appelle OpenVizsla. Il est actuellement en développement mais sera bientôt terminé. C'est un projet open source complet.

Vérifiez ce lien http://www.kickstarter.com/projects/bushing/openvizsla-open-source-usb-protocol-analyzer/posts


Les liens mis à jour pour ce projet sont: openvizsla.org et github.com/openvizsla/ov_ftdi
Glenn 'devalias'


0

Il existe des tonnes de solutions logicielles et matérielles. La capture et l'analyse des données ne sont pas un problème, mais vous devez comprendre ce qui se trouve dans la clé USB. J'ai vu des gens développer des clés USB avec des processeurs intégrés et un cryptage AES. (Chiffrement / déchiffrement local). Sans savoir exactement ce qu'est cette clé USB, il est difficile de savoir exactement ce que vous pouvez apprendre du trafic.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.