USB port sniffing

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Wooop
User
Beiträge: 2
Registriert: Samstag 9. März 2019, 10:54

Hallo meine hoffentlichen Retter,

ich arbeite gerade an einem kleinen Projekt um mir eine eigene Stempeluhr für meine Arbeiten zuhause zu bauen.
Ich nutze RFID Karten die jeweils eine 10 stellen lange Nummer haben um den "Stempler" identifizieren zu können.
Da ich mich meist auf Windows bewege habe ich mir auch einen USB Reader zugelegt. Dieser funktioniert auch
so wie er soll, jedoch gibt er die Nummer der daraufgelegten Karte als einen Tastatur Input.
Das wäre soweit kein Problem da ich über pynput diesen sehr einfach auslesen und eine Zahlenfolge mit meiner
User Datenbank matchen kann. Aber ich möchte die Anwendung unsichtbar und im Hintergrund haben, sodass
man jederzeit bei einer Raucherpause einfach schnell die Karte über den Leser ziehen kann und das Script sein
weiteres tut.
Hier nun mein Problem. Wenn die Kartennummer als Keyboard-Input kommt, und ich mich in anderen Programmen
befinde so werden hierdurch Shortcuts ausgelöst und texte in aktuelle Positionen geschrieben. Das schlimmste daran
ist, das am ende jedes Scans auch noch die Entertaste ausgelöst wird, was gerade auf Internetseiten oft zu problemen
führen kann.

Mein bisheriger Lösungsansatz war, über pyusb mein Device auszulesen. Leider gibt diese jedoch keinerlei informationen
über seine Endpunkte aus. (ich nehme ans, da er irgendwie die Tastatur verwendet)
Auch ansonsten ist das Gerät über pyusb nicht wirklich brauchbar, da ich keinerlei Dokumentation über das Teil selbst
besitzte. Ich dachte jedoch, ich könnte mein Problem lösen, wenn ich einfach den USB eingang überwache, in dem der
Reader steckt, und sobald das Device "irgendetwas" macht, den Tastatur input für 1 Sekunde blockiere und nur in
Python über pynput abfange. Somit könnte ich die Kartennummern einlesen, ohne ein Raspberrypy kaufen zu müssen
und ohne dass sinnlos Shortcuts in meinen Programmen gedrückt werden.

Hat bitte jemand eine Idee... ich versuche mich jetzt seit gut 3 Wochen daran und bin kurz vorm aufgeben....
Danke.
__deets__
User
Beiträge: 14533
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das hier koennte helfen:

https://github.com/charlysan/pyrfidhid/ ... der-Writer

Zusammen mit dem disablen des "abgreifen" des Devices durch Windows als USB-Device sollte das ausreichen.

https://forums.tomshardware.com/threads ... g.1311824/

hat fuer letzteres ggf. Hinweise. Ich bin nicht genug unter Windows unterwegs, um sowas da beurteilen zu koennen, aber es sollte eigentlich moeglich sein zur Not zB einen Dummy-Treiber (nur eine .inf-datei) zu schreiben, der die VID:PID-Kombi deines Readers abgreift, und sich den schnappt bevor das OS dran kommt.
Wooop
User
Beiträge: 2
Registriert: Samstag 9. März 2019, 10:54

Super danke für die schnelle Antwort!!! Werde es am Wochenende testen!!!
Antworten