web-dev-qa-db-fra.com

Événement de clavier Linux Capture / Dev / Inputx

J'essayais de capturer des événements de clavier. par exemple. Je veux explorer un keylogger de la scratch. Après 2 heures de combat, j'ai trouvé ce qui suit

neel@pc1$ ls -l /dev/input/by-id
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd -> ../event1
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-mouse -> ../event2
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-mouse -> ../mouse1

Mais quand j'ai essayé de

neel@pc1$ Sudo cat /dev/input/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd

Ça ne donne rien il n'y avait pas de sortie

après un peu plus de recherche maintenant, je pense probablement quelque chose dans Xorg le bloque.

Donc, plus d'informations ?? et à la fin de l'indique comment puis-je lire l'entrée de ce fichier ?? ou y a-t-il une autre façon de capturer des événements de clavier ??

14
Neel Basu

Bonjour,

J'essayais récemment d'accomplir quelque chose de similaire.

Jetez un coup d'œil au projet LOGKEYS:

http://code.google.com/p/logkeys/

Si vous téléchargez le code source et consultez le fichier LogKeys.cc, vous trouverez une méthode comment détecter automatiquement lequel/dev/entrée/événement est utilisé par votre clavier. Cela vous permettra de lire les codes de numérisation bruts du clavier, quel que soit le programme actuellement mis sur la mise au point. Le programme LOGKEYS montre également comment traduire les codes de numérisation en caractères et d'autres astuces utiles.

J'espère que cela t'aides,

Markus.

14
msvilans

Une opération simple grep sur le fichier /proc/bus/entrées/périphériques Fichier fournira tous les claviers branchés sur la machine:

 grep -E  'Handlers|EV=' /proc/bus/input/devices | \
 grep -B1 'EV=120013' | \
 grep -Eo 'event[0-9]+'

EV=120013 est le bitmask pour les événements pris en charge par l'appareil. Comme expliqué ici .

C'est la façon dont il est mis en œuvre dans LOGKEYS

13
JacobP

Vous lisez le mauvais appareil. Essayez tous/dev/d 'entrée/événement * ou regarder dans /var/log/xorg.0.log pour quel périphérique est utilisé pour votre clavier.

10
Florian Diesch

Je vous recommanderais d'utiliser l'application EvTest, il répertorie tous vos périphériques d'entrée et vous permet de surveiller leurs événements.

9
madhat1