2013-08-08 24 views
16

Ho un famoso tablet da disegno che collego al mio PC con USB. Una volta connesso, il tablet rileva i movimenti delle mani e manipola il puntatore di conseguenza. Da qualche parte, il tablet sta trasmettendo questi dati al mio computer.Come posso intercettare i messaggi da un dispositivo USB su Linux?

Il mio obiettivo è intercettare queste trasmissioni e manipolare il mouse dopo aver elaborato i dati. Le parole che ho trovato sono: driver di dispositivo e HID, ma non sono stato in grado di mettere insieme molto più di quello.

Supponendo che questo è possibile, ho alcune domande:

  1. Come è questo fatto se il formato dei dati è noto?
  2. Come si fa se il formato dei dati è sconosciuto/proprietario?

Nel mio computer è in esecuzione Ubuntu (ma le risposte relative a qualsiasi forma di un SO Linux sono molto apprezzate!).


Nota: questo question è simile ma destinato a Windows.

+1

Ecco un buon punto di partenza: http://lxr.free-electrons.com/source/drivers/usb/README –

risposta

23

In realtà ti sei perso una parola d'ordine "USB sniffing". ;-)

Ecco alcuni tutorial su USB sniffing su Linux, per iniziare.

Essenzialmente si utilizza il modulo di usbmon kernel di Linux per catturare i USB-pacchetti e Wireshark come front-end per visualizzare e analizzare il flusso USB catturato.

+0

Impressionante, grazie mille. – sdasdadas

+0

Alla fine sono riuscito a farlo e ha funzionato benissimo, quindi grazie ancora. Il problema che ho, però, è che questo ancora non impedisce al messaggio di raggiungere il sistema operativo (e successivamente spostare il mouse). Mi piacerebbe trovare un modo per impedirlo completamente. – sdasdadas

+1

@sdasdadas Potresti provare a disabilitarlo con 'xinput' http://askubuntu.com/questions/160945/is-there-a-way-to-disable-a-laptops-internal-keyboard – Tim