
Exposer l'activité USB à la volée

[!NOTE] USBvalve Version 1.0.0
Une réécriture complète de l'application a été effectuée :
- abandon de l'environnement Arduino IDE, le code est désormais écrit pour le Pi Pico SDK
- les dépendances à des bibliothèques externes ont été fortement réduites
- la prise en charge des périphériques USB Host Low Speed est désormais plus robuste (ATTiny85, EvilCrow, etc)
- le matériel et les fonctionnalités sont presque inchangés, voir les notes ci-dessous pour plus de détails
Je suis sûr que, comme moi, on vous a demandé de brancher votre clé USB sur un appareil inconnu... et puis le doute :
qu'est-il arrivé à ma pauvre clé, en coulisses ? Elle vole mes fichiers ? Elle les chiffre ? Ou elle installe simplement un malware ? Avec USBvalve, vous pouvez le découvrir en quelques secondes : construit sur du matériel du commerce très bon marché, vous pouvez rapidement tester toute activité du système de fichiers USB et comprendre ce qui se passe avant qu'il ne soit trop tard !
Avec USBvalve, vous obtenez un retour immédiat sur ce qui arrive à la clé ; l'écran vous montre si le faux système de fichiers construit sur l'appareil est accédé, lu ou écrit :
et depuis la version 0.8.0, vous pouvez aussi l'utiliser comme USB Host pour détecter les périphériques BADUSB :
Voici un exemple du débogueur BADUSB disponible sur le port série :
Si vous préférez les vidéos, vous pouvez aussi jeter un œil à ma Présentation à Insomni'hack
À partir de la version 0.15.0, une nouvelle version Pi Pico Watch est prise en charge. Pour compiler la nouvelle version, vous devez décommenter la ligne #define PIWATCH au début du code. Le matériel est une carte montre avec écran TFT de 1,28 pouce basée sur RP2040. Vous trouverez plus d'informations ici.
Elle est également entièrement compatible avec la Waveshare RP2040-LCD-1.28.
docs : documentation sur le projet, avec une présentation où vous pouvez découvrir toutes les fonctionnalités
firmware : firmwares précompilés pour le Raspberry Pi Pico. Vous pouvez simplement les utiliser et les flasher sur la carte. Nous avons plusieurs versions différentes, pour écrans OLED 32 ou 64 lignes, pour Pico 1 ou Pico2, Pi Pico Watch, etc
PCB : fichier Gerber si vous souhaitez imprimer le PCB personnalisé. Ce n'est pas obligatoire, vous pouvez utiliser le vôtre ou le monter sur une breadboard
src et data : sources, si vous souhaitez modifier et compiler le firmware vous-même
utils : quelques utilitaires que vous pouvez utiliser pour construire un FS personnalisé
pictures : images et ressources utilisées dans cette documentation
STL : fichiers STL pour le boîtier. Dans les dossiers 1.1 et 1.2 se trouvent des boîtiers complets (merci à WhistleMaster). Dans les dossiers 1.2_64 et 1.2_64_simple se trouvent des boîtiers pour l'écran 128x64 (merci à rtmq0227). Si vous voulez quelque chose de plus léger pour protéger l'écran LCD, vous pouvez opter pour USBvalve_sliding_cover.stl.
Si vous souhaitez construire le vôtre, vous avez besoin de :
Dans les versions 0.x.x, BOOTSEL était utilisé pour réinitialiser l'appareil ou afficher le nombre d'événements HID (appui > 2s).
Le polling de BOOTSEL créait quelques problèmes pour la détection BADUSB, il a donc été supprimé à partir de la version 1.0.0 et remplacé par les deux options suivantes :
GP0 et GND (pads 1 et 3, voir la photo ci-dessous pour un exemple) pour avoir les mêmes fonctionsr (reset) et h (événements HID) depuis le moniteur série
Dans PCB, vous trouverez également une version 1.3 de la carte, avec des trous sur les pads 1 et 3 pour faciliter le montage du bouton. Mais comme vous pouvez le voir, vous pouvez aussi utiliser votre ancienne version.
Si vous n'utilisez pas les fonctions BADUSB ou si vous préférez avoir une couverture de détection moindre mais conserver l'usage de BOOTSEL, je fournis également un firmware compilé avec bootsel activé (voir le dossier et les releases).
Merci à Tz1rf pour deux excellentes vidéos : une expliquant le processus de construction étape par étape, et une autre montrant comment téléverser le firmware et utiliser l'outil.
Presque tout le travail est effectué directement sur la carte par le logiciel, vous avez donc juste besoin d'organiser la connexion avec l'OLED pour la sortie.
À partir de la version 0.8.0 du firmware, USBvalve peut détecter les périphériques HID (utilisé pour détecter les BADUSB). Cela nécessite un port USB supplémentaire agissant comme Host. Si cela ne vous intéresse pas, vous pouvez utiliser les anciennes instructions dans le dossier docs et utiliser la version 1.1 du PCB. Sinon, continuez avec la version 1.2 du PCB (nous avons une version pour USB-A ou USB-B, voir le dossier).