
USBvalve v1.0.1
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
Exposez l'activité USB à la volée
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
USBvalve Watch
À 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.
Structure du dépôt
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.
Construire USBvalve
Liste des pièces
Si vous souhaitez construire le vôtre, vous avez besoin de :
- Un Raspberry Pi Pico 1 ou 2 (ou une autre carte basée sur RP2040)
- un écran OLED I2C 128x64 ou 128x32 (SSD1306)
- (optionnel) un PCB USBvalve ou une breadboard
- (optionnel) une entretoise imprimée en 3D pour isoler l'écran de la carte (https://www.thingiverse.com/thing:4748043), mais vous pouvez utiliser un morceau de ruban isolant à la place
Notes sur BOOTSEL et la version >= 1.0.0
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 :
- souder un bouton entre
GP0etGND(pads 1 et 3, voir la photo ci-dessous pour un exemple) pour avoir les mêmes fonctions - utiliser les commandes
r(reset) eth(é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).
Instructions de construction
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).
Avec le PCB USBvalve
