Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope
Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop de trafic.
Les captures USB peuvent devenir écrasantes rapidement. Une machine peut avoir un clavier, une souris, une webcam, un adaptateur Bluetooth, un périphérique de stockage, un adaptateur série, une clé de sécurité et un hub interne actifs en même temps. Quand les utilisateurs cherchent « Wireshark USB filter », « USBPcap filter device », « usbmon filter endpoint » ou « how to find my USB device in capture », ils ont généralement le même problème: "la capture contient trop de trafic et pas assez de structure." Bus Scope est construit pour rendre l'inspection USB plus directe, mais comprendre le problème de filtrage reste utile. Que la capture vienne d'USBPcap sur Windows, d'usbmon sur Linux ou d'une autre source de capture USB, la clé est d'identifier le périphérique puis de restreindre la trace par adresse, endpoint, type de transfert et requête de contrôle.
Commencer par l'énumération
La façon la plus simple d'identifier un périphérique USB est de capturer depuis le branchement. L'énumération contient des descripteurs qui nomment le périphérique, le vendor ID, le product ID, les configurations, interfaces, endpoints et détails spécifiques à la classe.
Cherchez :
- Vendor ID
- Product ID
- Device descriptor
- Configuration descriptor
- Interface descriptors
- Endpoint descriptors
- String descriptors
SET_ADDRESSSET_CONFIGURATION
Si vous démarrez la capture après que le périphérique tourne déjà, vous ne verrez peut-être que le trafic d'endpoint sans le contexte des descripteurs. Cela rend le filtrage plus dur car les numéros d'endpoint seuls ne suffisent pas.
L'adresse du périphérique peut changer
Les adresses de périphérique USB sont attribuées par l'hôte pendant l'énumération. Si le périphérique se déconnecte et se reconnecte, l'adresse peut changer. Un filtre qui marchait pour la première connexion peut manquer la seconde connexion.
Cela compte pour le débogage des reset loops. Si un périphérique se ré-énumère en boucle, vous pouvez avoir besoin de suivre plusieurs adresses dans une seule capture. Les descripteurs product/vendor révèlent que ces adresses appartiennent au même périphérique physique.
Bus Scope aide à garder cette relation visible au lieu de vous forcer à reconstituer mentalement les changements d'adresse.
Filtrer par endpoint
Après la configuration, la plupart du trafic de données utilise des endpoints. L'endpoint zéro est control. Les autres endpoints peuvent être bulk, interrupt ou isochrone.
Significations courantes des endpoints :
0x00: control OUT sur l'endpoint zéro0x80: control IN sur l'endpoint zéro0x81: endpoint 1 IN0x01: endpoint 1 OUT0x82: endpoint 2 IN0x02: endpoint 2 OUT
Le bit de direction compte. 0x81 et 0x01 ne sont pas la même direction d'endpoint. Un adaptateur série, par exemple, peut utiliser un endpoint bulk OUT pour les données hôte-vers-périphérique et un endpoint bulk IN pour les données périphérique-vers-hôte.
Les filtres d'endpoint sont utiles une fois que vous savez quel endpoint porte le trafic qui vous intéresse.
Filtrer par type de transfert
Différents problèmes USB vivent dans différents types de transferts :
- Transferts control : descripteurs, configuration, requêtes de classe, commandes vendor.
- Transferts bulk : stockage, données série, données vendor, beaucoup de périphériques de capture.
- Transferts interrupt : entrée HID, notifications de statut, rapports basse latence.
- Transferts isochrones : audio, vidéo, streaming sensible au timing.
Si un périphérique série USB s'ouvre mais n'envoie pas de données, inspectez les transferts control pour le line coding et l'état des lignes de contrôle, puis les endpoints bulk pour le payload. Si une webcam démarre mais que la vidéo est corrompue, inspectez les transferts isochrones et les alternate settings. Si un périphérique HID se comporte mal, inspectez les transferts interrupt et les descripteurs de rapport.
Filtrer par type de transfert réduit le bruit tout en gardant la classe de preuve pertinente.
Filtrer par setup packet
Les transferts control incluent des setup packets. Les setup packets sont extrêmement utiles car ils identifient la direction de la requête, le type, le destinataire, le code de requête, la valeur, l'index et la longueur.
Exemples importants :
GET_DESCRIPTORSET_ADDRESSSET_CONFIGURATIONSET_INTERFACECLEAR_FEATURE- HID
GET_REPORT - HID
SET_REPORT - CDC
SET_LINE_CODING - CDC
SET_CONTROL_LINE_STATE - Commandes vendor-specific
Quand un périphérique échoue pendant le setup, le setup packet vous dit souvent exactement quelle requête a déclenché le problème.
Sélection de capture USBPcap sous Windows
Sous Windows, USBPcap capture depuis les contrôleurs hôtes USB. Si une machine a plusieurs contrôleurs, choisir le mauvais peut produire une capture sans trafic du périphérique cible.
Un flux pratique :
- Débranchez le périphérique cible.
- Démarrez la capture sur le contrôleur probable.
- Branchez le périphérique.
- Cherchez les descripteurs d'énumération.
- Si rien n'apparaît, essayez une autre capture de contrôleur.
- Une fois le périphérique trouvé, gardez la capture comme référence.
La valeur de Bus Scope est de rendre ce flux moins opaque : la cible est la conversation USB du périphérique, pas juste une énorme liste de paquets.
Capture usbmon sous Linux
Sous Linux, usbmon expose le trafic du bus USB. Le numéro de bus compte. Un périphérique listé comme Bus 003 Device 012 appartient au bus 3 à ce moment-là. Après reconnexion, le numéro de périphérique peut changer.
La capture la plus utile démarre avant le branchement, car l'énumération révèle l'identité du périphérique. Si une permission bloque la capture, résolvez-la d'abord ; sinon vous ne verrez que la défaillance applicative et jamais la preuve USB.
Erreurs de filtrage courantes
Évitez ces erreurs :
- Filtrer seulement après la défaillance, en manquant l'énumération.
- Supposer que l'adresse du périphérique est stable entre les reconnexions.
- Confondre la direction de l'endpoint.
- Ignorer le trafic de contrôle de l'endpoint zéro.
- Ne regarder que les paquets de payload et manquer les requêtes de classe.
- Traiter toutes les requêtes vendor-specific comme du bruit.
- Filtrer les resets et erreurs trop tôt.
- Ignorer le contexte de hub et de port.
Un filtre propre n'est utile que s'il préserve la défaillance.
Que garder dans une capture d'investigation
Pour un rapport partageable avec une équipe firmware, pilote ou QA, gardez :
- L'énumération initiale.
- Les descripteurs du périphérique cible.
- La configuration et interface sélectionnées par l'hôte.
- Les requêtes spécifiques à la classe ou vendor avant la défaillance.
- Le trafic d'endpoint impliqué dans la défaillance.
- L'événement de reset, stall, timeout ou déconnexion.
- Assez de contexte de timing pour montrer si la défaillance est immédiate, liée à l'inactivité, ou liée à la charge.
Cette preuve est plus forte qu'une capture d'écran de « device not recognized ».
Diagnostic final
Le filtrage USB n'est pas qu'une question de masquer le bruit. C'est préserver la séquence de paquets qui explique la défaillance. Commencez par l'énumération, identifiez le périphérique, suivez les changements d'adresse, restreignez par endpoint et type de transfert, et gardez les requêtes de contrôle visibles.
Bus Scope est censé supporter ce flux : trouver rapidement la vraie conversation USB, puis inspecter la preuve au niveau bus qui explique pourquoi le périphérique marche, stall, reset ou disparaît.
<!-- bus-scope-localized-transaction-foundation-v1:start -->Test du contrat USB pour « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope »
La réponse directe est qu’un STALL, timeout ou reset n’explique pas seul la cause. Prouvez d’abord que le fournisseur voit le bon périphérique, puis lisez le contrat du transfer : type, direction, recipient, wValue, wIndex, longueur annoncée et réelle, status et état avant/après. Pour « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope », reliez la conclusion à la première transaction différente d’un cas nominal.
| Limite | Comparaison | Décision |
|---|---|---|
| Plateforme | fournisseur, droits, Root Hub ou usbmon/XHC20 | Les records viennent-ils de la bonne connexion ? |
| Setup | bmRequestType, bRequest, wValue, wIndex, wLength | L’hôte envoie-t-il la requête prévue ? |
| Data | direction, longueur et bytes conservés | Le payload respecte-t-il le contrat ? |
| Status | ACK, STALL, timeout ou cancellation | Où finit réellement la transaction ? |
| État | configuration, interface, alternate setting, endpoint halt | Le périphérique était-il prêt ? |
Commencez avant reset et énumération et gardez descriptors, SET_CONFIGURATION, SET_INTERFACE et la commande avant défaut. Un filtre endpoint étroit peut masquer le control transfer décisif. Exécutez une seule action USB documentée par essai et ne changez que firmware, driver, port, câble, commande ou timing.
Comment rédiger une réponse réutilisable ?
Nommez requête, champs setup, réponse et contexte précédent, puis un test à variable unique. Des bytes non retenus ne prouvent pas packet loss. La proximité entre command et reset établit une corrélation, pas la cause sans répétition ou transition d’état.
Quand la comparaison est-elle valide ?
Gardez VID/PID, firmware, speed, topologie, fournisseur, filtre et trigger. Comparez les phases USB sémantiques, pas les frame numbers entre usbmon et USBPcap. Notez début, fin, version, OS, connexion et checksum. Consultez le dépannage Bus Scope.
Les propriétaires Semrush restent distincts : free USB analyzer sur la page produit, best USB protocol analyzer dans la comparaison et USB descriptor viewer dans le guide descriptor. Aucun volume ou KD n’est inventé pour cette page de support.
<!-- bus-scope-localized-transaction-foundation-v1:end --><!-- multilingual-blog-closeout:start -->Réponse directe et limite d’acceptation
La réponse courte à « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope » est la suivante : Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop de trafic. Considérez cette phrase comme un résultat à vérifier, et non comme une promesse valable pour toute entrée, tout appareil, tout projet ou tout environnement. Un résultat complet consigne l’état initial, l’action exacte, la sortie visible et la condition qui prouve la fin de la tâche dans Bus Scope.
Procédure fondée sur les preuves
Commencez par un cas petit et répétable avant de modifier un projet complet. Notez version de l’application, système, identité de l’entrée ou de l’appareil, réglages pertinents et résultat attendu. Exécutez une action volontaire, conservez la première transition inattendue et comparez-la à un cas nominal si possible. Plusieurs changements simultanés masquent la condition qui a créé ou corrigé le problème.
Point de contrôle 1 : Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope
Si « Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.
Point de contrôle 2 : Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup pack
Vérifiez « Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand USBPcap ou usbmon capture trop » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.
Point de contrôle 3 : Commencer par l'énumération
Si « Commencer par l'énumération » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.
Point de contrôle 4 : L'adresse du périphérique peut changer
Vérifiez « L'adresse du périphérique peut changer » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.
Point de contrôle 5 : Filtrer par endpoint
Si « Filtrer par endpoint » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.
Point de contrôle 6 : Filtrer par type de transfert
Vérifiez « Filtrer par type de transfert » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.
Point de contrôle 7 : Filtrer par setup packet
Si « Filtrer par setup packet » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.
Point de contrôle 8 : Sélection de capture USBPcap sous Windows
Vérifiez « Sélection de capture USBPcap sous Windows » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.
Point de contrôle 9 : Capture usbmon sous Linux
Si « Capture usbmon sous Linux » est ambigu, comparez un cas nominal et un cas défaillant dans des conditions identiques. Marquez la première différence utile au lieu de lister tous les symptômes suivants. Cette limite produit généralement une demande d’assistance plus claire.
Point de contrôle 10 : Erreurs de filtrage courantes
Vérifiez « Erreurs de filtrage courantes » avec la plus petite entrée représentative. Gardez les réglages indépendants inchangés, répétez la même action et contrôlez le résultat après réouverture ou reconnexion. Une image seule est moins forte qu’un relevé comprenant entrée, réglage, action, sortie et heure.
Matrice d’acceptation
| Point | Preuve à conserver | Critère de réussite |
|---|---|---|
| Filtres USB Wireshark : trouver le bon périphérique avec USBPcap, usbmon et Bus Scope | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
| Comment filtrer les captures USB par périphérique, endpoint, type de transfert, setup packet, interface et timing quand | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
| Commencer par l'énumération | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
| L'adresse du périphérique peut changer | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
| Filtrer par endpoint | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
| Filtrer par type de transfert | État initial, une action et état obtenu | Une seconde personne reproduit le résultat |
Isolation, reprise et transmission
Arrêtez-vous à la première limite en échec. Conservez source, projet, session ou capture, dupliquez avant toute modification destructive et changez une variable par essai. Rejouer un flux entier après plusieurs changements peut modifier le résultat sans expliquer pourquoi.
Distinguez absence de preuve et preuve d’absence. Une vue vide peut signaler mauvaise entrée, portée, filtre, permission, appareil, période ou état du projet. Vérifiez acquisition ou import avant d’interpréter décodeur, éditeur, rapport ou export.
Avant transmission, rouvrez l’artefact durable et inspectez début, point de décision et fin. Notez version, plateforme, configuration, attente, observation et reproduction minimale. Retirez ou masquez les données sensibles et confirmez l’autorisation du destinataire.
Questions et réponses
Quelle est la manière fiable la plus rapide de commencer ?
Utilisez le plus petit cas représentatif, écrivez le résultat attendu et ne changez qu’une variable. Validez le parcours de base avant d’ajouter filtres, effets, modifications, automatisation ou grande source.
Quelles preuves faut-il conserver ?
Gardez identité de l’entrée, version, plateforme, réglages, action exacte, première transition inattendue et sortie finale. Fermez puis rouvrez projet, session, rapport ou export avant de le considérer durable.
Quand faut-il répéter la procédure ?
Répétez-la après un changement pertinent d’application, système, pilote, firmware, modèle, source ou processus. Conservez le cas accepté précédent comme référence non modifiée.
Quand le résultat est-il transmissible ?
Lorsqu’une seconde personne autorisée identifie l’entrée, répète l’action, obtient le même résultat, comprend les limites et ouvre l’artefact sans état local non documenté.
Guides associés
Ces pages dans la même langue couvrent les étapes voisines sans changer le propriétaire canonique du sujet :
<!-- multilingual-blog-closeout:end -->