
Espone l'attività USB al volo

[!NOTE] USBvalve Versione 1.0.0
È stata fatta una riscrittura completa dell'applicazione:
- abbandonato l'ambiente Arduino IDE, ora il codice è scritto per il Pi Pico SDK
- le dipendenze da librerie esterne sono state ridotte molto
- il supporto USB host per dispositivi Low Speed è ora più robusto (ATTiny85, EvilCrow, ecc.)
- hardware e funzionalità sono quasi invariati, vedi le note sotto per i dettagli
Sono sicuro che, come me, ti è stato chiesto di inserire la tua chiavetta USB in un dispositivo sconosciuto...e poi il dubbio:
cosa è successo alla mia povera chiavetta, dietro le quinte? Sta rubando i miei file? Li sta cifrando? O semplicemente installando un malware? Con USBvalve puoi scoprirlo in pochi secondi: costruito su hardware super economico disponibile in commercio, puoi testare rapidamente qualsiasi attività del file system USB e capire cosa sta succedendo prima che sia troppo tardi!
Con USBvalve puoi avere un feedback immediato su cosa succede alla chiavetta; lo schermo ti mostrerà se il finto file system costruito sul dispositivo viene acceduto, letto o scritto:
e dalla versione 0.8.0 puoi anche usarlo come USB Host per rilevare dispositivi BADUSB:
Questo è un esempio del debugger BADUSB disponibile sulla porta seriale:
Se preferisci i video, puoi anche dare un'occhiata alla mia Presentazione a Insomni'hack
A partire dalla versione 0.15.0 è supportata una nuova versione Pi Pico Watch. Per compilare la nuova versione devi decommentare la riga #define PIWATCH all'inizio del codice. L'hardware è una scheda orologio con display TFT da 1,28 pollici basata su RP2040. Puoi trovare maggiori informazioni qui.
Questo è anche completamente compatibile con il Waveshare RP2040-LCD-1.28.
docs: documentazione sul progetto, con una presentazione dove puoi dare un'occhiata a tutte le funzionalità
firmware: firmware precompilati per il Raspberry Pi Pico. Puoi semplicemente usarli e flasharli sulla scheda. Abbiamo diverse versioni differenti, per OLED da 32 o 64 righe, per Pico 1 o Pico2, Pi Pico Watch, ecc.
PCB: file Gerber se vuoi stampare il PCB personalizzato. Non è obbligatorio, puoi usare il tuo o costruirlo su una breadboard
src e data: sorgenti, se vuoi modificare e compilare il firmware da solo
utils: alcune utilità che potresti usare per costruire un FS personalizzato
pictures: immagini e risorse usate in questo documento
STL: file STL per l'involucro. Nelle cartelle 1.1 e 1.2 ci sono involucri completi (grazie a WhistleMaster). Nelle cartelle 1.2_64 e 1.2_64_simple ci sono involucri per lo schermo 128x64 (grazie a rtmq0227). Se vuoi qualcosa di più leggero per proteggere l'LCD puoi usare USBvalve_sliding_cover.stl.
Se vuoi costruire il tuo, hai bisogno di:
Nelle versioni 0.x.x, BOOTSEL era usato per resettare il dispositivo o stampare il numero di eventi HID (premere > 2s).
Il polling di BOOTSEL creava alcuni problemi al rilevamento BADUSB quindi è stato rimosso dalla versione 1.0.0 e sostituito con le seguenti due opzioni:
GP0 e GND (pad 1 e 3, vedi foto sotto per un esempio) per avere le stesse funzionir (reset) e h (eventi HID) dal monitor seriale
In PCB troverai anche una versione 1.3 della scheda, con alcuni fori sui pad 1 e 3 per facilitare il montaggio del pulsante. Ma come puoi vedere, puoi anche usare la tua vecchia versione.
Se non stai usando le funzioni BADUSB o se preferisci avere meno copertura sul rilevamento ma mantenere l'uso di BOOTSEL, fornisco anche un firmware creato con bootsel abilitato (vedi cartella e release).
Grazie a Tz1rf abbiamo anche due ottimi video: uno che spiega il processo di costruzione passo dopo passo, e un altro che mostra come caricare il firmware e usare lo strumento.
Quasi tutto il lavoro è fatto direttamente sulla scheda dal software, quindi devi solo predisporre la connessione con l'OLED per l'output.
A partire dalla versione 0.8.0 del firmware, USBvalve può rilevare dispositivi HID (usato per rilevare BADUSB). Questo richiede una porta USB aggiuntiva che funga da Host. Se non sei interessato a questo, puoi usare le vecchie istruzioni nella cartella docs e usare la versione PCB 1.1. Altrimenti procedi con la versione PCB 1.2 (abbiamo versioni per USB-A o USB-B, vedi cartella).
USBH. Questa è per la versione A, ma c'è anche una versione per USB Micro-B se preferisciAlcuni degli OLED hanno i PIN GND e VCC scambiati, quindi ho costruito il PCB per essere compatibile con entrambe le versioni:
Per esempio se il tuo OLED ha GND sul PIN1 e VCC sul PIN2 come questo: