
Expón la actividad USB sobre la marcha

[!NOTE] USBvalve Versión 1.0.0
Se ha realizado una reescritura completa de la aplicación:
- se ha abandonado el entorno Arduino IDE, ahora el código está escrito para el Pi Pico SDK
- las dependencias de librerías externas se han reducido mucho
- el soporte de USB host para dispositivos de baja velocidad (Low Speed) es ahora más robusto (ATTiny85, EvilCrow, etc)
- el hardware y las funcionalidades son casi idénticos, consulta las notas a continuación para más detalles
Estoy seguro de que, como a mí, te han pedido que conectes tu unidad USB en un dispositivo desconocido... y entonces surge la duda:
¿qué le ha pasado a mi pobre pendrive, entre bambalinas? ¿Robando mis archivos? ¿Cifrándolos? ¿O simplemente instalando un malware? Con USBvalve puedes descubrirlo en segundos: construido sobre hardware comercial extremadamente barato, puedes probar rápidamente cualquier actividad del sistema de archivos USB y entender qué está pasando antes de que sea demasiado tarde.
Con USBvalve puedes tener una respuesta inmediata sobre lo que le ocurre a la unidad; la pantalla te mostrará si se accede, lee o escribe en el falso sistema de archivos creado en el dispositivo:
y desde la versión 0.8.0 también puedes usarlo como USB Host para detectar dispositivos BADUSB:
Este es un ejemplo del depurador BADUSB disponible en el puerto serie:
Si prefieres vídeos, también puedes echar un vistazo a mi Presentación en Insomni'hack
A partir de la versión 0.15.0 se soporta una nueva versión Pi Pico Watch. Para compilar la nueva versión tienes que descomentar la línea #define PIWATCH al principio del código. El hardware es una placa de reloj con pantalla TFT de 1,28 pulgadas basada en RP2040. Puedes encontrar algo más de información aquí.
También es totalmente compatible con la Waveshare RP2040-LCD-1.28.
docs: documentación sobre el proyecto, con una presentación donde puedes ver todas las funcionalidades
firmware: firmwares precompilados para la Raspberry Pi Pico. Puedes usarlos directamente y flashearlos en la placa. Tenemos varias versiones diferentes, para OLEDs de 32 o 64 líneas, para Pico 1 o Pico2, Pi Pico Watch, etc
PCB: archivo Gerber si quieres imprimir la PCB personalizada. No es obligatorio, puedes usar la tuya propia o montarlo en una protoboard
src y data: fuentes, si quieres modificar y compilar el firmware tú mismo
utils: algunas utilidades que puedes usar para construir un FS personalizado
pictures: imágenes y recursos usados en este documento
STL: archivos STL para la carcasa. En las carpetas 1.1 y 1.2 hay carcasas completas (gracias a WhistleMaster). En las carpetas 1.2_64 y 1.2_64_simple hay carcasas para la pantalla de 128x64 (gracias a rtmq0227). Si quieres algo más ligero para proteger la LCD puedes usar USBvalve_sliding_cover.stl.
Si quieres construir el tuyo propio, necesitas:
En las versiones 0.x.x, BOOTSEL se usaba para reiniciar el dispositivo o imprimir el número de eventos HID (pulsar > 2s).
El sondeo de BOOTSEL estaba creando algunos problemas para la detección de BADUSB, por lo que se eliminó a partir de la versión 1.0.0 y se sustituyó por las siguientes dos opciones:
GP0 y GND (pads 1 y 3, ver la imagen de abajo para ver un ejemplo) para tener las mismas funcionesr (reset) y h (eventos HID) desde el monitor serie
En PCB también encontrarás una versión 1.3 de la placa, con algunos agujeros en los pads 1 y 3 para facilitar el montaje del botón. Pero como puedes ver, también puedes usar tu versión antigua.
Si no estás usando las funciones BADUSB o si prefieres tener menos cobertura en la detección pero mantener el uso de BOOTSEL, también proporciono un firmware creado con bootsel habilitado (ver carpeta y releases).
Gracias a Tz1rf también tenemos dos vídeos geniales: uno explicando el proceso de construcción paso a paso, y otro mostrando cómo subir el firmware y usar la herramienta.
Casi todo el trabajo lo hace directamente el software en la placa, así que solo necesitas organizar la conexión con la OLED para la salida.
A partir de la versión 0.8.0 del firmware, USBvalve puede detectar dispositivos HID (usado para detectar BADUSB). Esto requiere un puerto USB adicional que actúe como Host. Si no estás interesado en esto, puedes usar las instrucciones antiguas en la carpeta docs y usar la versión 1.1 de la PCB. En caso contrario, continúa con la versión 1.2 de la PCB (tenemos versión para USB-A o USB-B, ver carpeta).