Forum: Mikrocontroller und Digitale Elektronik Bauteil: USB Barcode-Scanner Daten an 2tem Rechner mitlesen


von Daniel H. (Firma: wevade) (dhilkert)


Lesenswert?

Ich würde gerne die Daten eines "normalen" USB Barcode Handscanners an 
einem 2ten Rechner mitlesen.

Die Funktion soll dabei ungefähr der eines USB Keyloggers entsprechen, 
nur das die Daten nicht gespeichert werden, sondern auf einem 2ten 
Rechner mitgelesen werden sollen.
Wichtig ist dabei, dass die eigentliche Kommunikation zwischen dem 
Scanner und dem "Kassenrechner" nicht gestört wird. Über welche 
Schnittstelle (USB oder COM) die Daten an den 2ten Rechner gegeben 
werden, wäre sekundär, solange es eben möglich ist die Barcodes in einen 
InputStream eines COM Ports zu leiten (und dann in einer "höheren" 
Programmiersprache wie Java oder C auszuwerten).

Ist sowas grundsätzlich möglich und wenn ja, wieviel würde es kosten ist 
ein solches Bauteil zu erstellen? Entsprechende Angebote gerne auch per 
PN oder E-Mail an mich!

Vielen Dank für eure Hilfe!

von Albrecht H. (alieninside)


Lesenswert?

Möglich ist das sicherlich. Den Datenstrom den der Scanner über USB-Out 
zurückgibt mitschneiden, klar, warum nicht. Man muss diesen Datenstrom 
dann halt nur noch richtig interpretieren können, (ich bin mir sicher 
das erfordert einiges an Vorarbeit).

Viel einfacher wärs natürlich wenn man stattdessen einen Scanner mit 
seriellem Anschluss verwendet oder das Signal abgreift bevor es in einen 
USB-Datenstrom umgewandelt wird. Also ich hab hier einen LS300 
Laserscanner den man sowohl an USB als auch an COM, (genauer gesagt: 
PS2-Tastatur), anschließen kann, der Scanner selbst liefert ursprünglich 
einen seriellen Datenstrom, der dann in einem Adapterkabel in einen 
USB-Datenstrom umgewandelt wird, da könnte ich natürlich sehr einfach 
den seriellen Datenstrom vor dem USB-Adapter abgreifen, auf einem 
anderen Rechner aufzeichnen und trotzdem den Original-Rechner im Glauben 
lassen er wäre das einzige Gerät das mit dem Scanner über USB verbunden 
wäre.

Ansonsten: Es kann auf jeden Fall nicht schaden sich mit dem 
USB-Protokoll vertraut zu machen, ich denke wenn man da einigermaßen 
durchblickt, sollte es ein leichtes sein die Signale von USB-Out richtig 
zu interpretieren.
Im Zusammenhang mit "Soft"-USB auf AVR, (also USB-Funktionalität ohne 
spezielle USB-Chips), gibts einige Dokumente, die vermutlich etwas 
einfacher zu verstehen sind als die Originale von Microsoft.

von Guido Körber (Gast)


Lesenswert?

Die Vorrichtung zum Mitlesen eines USB Datenstromes nennt sich Analyzer 
und ist ein Messgerät.

Ansonsten: Fällt aus wegen geht nicht. Einfacher ist es die Daten 
mittels Software an den zweiten Rechner weiter zu leiten.

von rossi75 (Gast)


Lesenswert?

Es gibt doch Sniffersoftware für USB. Name weiss ich gerade nicht. Aber 
damit kann man genau sehen was der PC vom USB-Gerät abholt.

von Albrecht H. (alieninside)


Lesenswert?

rossi75 wrote:
> Es gibt doch Sniffersoftware für USB. Name weiss ich gerade nicht. Aber
> damit kann man genau sehen was der PC vom USB-Gerät abholt.

Ich kenne ähnliche Problemstellungen von diversen Inventurszenarios, der 
Punkt ist eben, dass man in so einem Fall in der Regel keine eigene 
Software auf dem Kassenrechner installieren kann/soll/darf, kommt zwar 
immer darauf an, aber normalerweise sind die Kassenhersteller in diesen 
Fällen oft sehr kleinlich: "Wie die Kasse, spinnt?! Sie haben was 
installiert?!...".
Also kommt Sniffersoftware nicht unbedingt in Frage. Das sind ja immer 
so halbgare Sachen, wo man sich überlegen muß, brauchen wir das öfters 
z.B. für alle 100 Fillialen, dann ruft man eben dem Kassenhersteller an 
und lässt selbst besser die Finger davon oder handelt es sich etwas, 
dass man nur 2 bis 3 mal im Jahr oder gar nur einmal in 20 Jahren 
benötigt, (Euroumstellung). Tabaksteuererhöhung z.B. ist so ein 
typischer Fall, da liegen dann plötzlich Zigarettenschachteln gleicher 
Marke und Sorte aus allen Epochen mit unterschiedlicher Füllmenge und 
unterschiedlichem Steuersatz nebeneinander im Regal, die z.T. auch noch 
von unterschiedlichen Lieferanten mit unterschiedlichem Einkaufspreisen 
kommen, entweder kümmert sich da dann das Kassensystem darum oder der 
Pächter, der Pächter tuts normalerweise nicht, (da darf man sich auch 
keinerlei Illusionen hingeben, nach wie vor befinden sich in Deutschland 
Kassensysteme von Baujahr 1985 - 2007 Einsatz, natürlich auch viele 
selbstgestrickte Systeme die im Laufe der Jahre erweitert wurden).

Wie auch immer, und auch wenn der Vorposter die Möglichkeit von 
"USB-Out" eines Laserscanners "mitzulesen" pauschal verneint, glaube ich 
eigentlich schon dass das möglich sein müsste, klar da werden immer auch 
noch etliche Daten protokollmäßig hin und her geschoben und auch die 
Übertragungsgeschwindigkeit kann sich dauernd ändern, aber letztlich, 
muss ja früher oder später im USB-Out-Datenstrom des Scanners, in 
serieller Form das drinstehen, was der Scanner gerade eben gescannt hat. 
Müsste man halt einfach mal ausprobieren, ich will ja noch nicht einmal 
ausschließen, dass man eventuell besser zurechtkommt, wenn man auch noch 
USB-In mitliest um zu erfahren, ab welchem Zeitpunkt genau die 
gewünschten Daten und mit welcher Geschwindigkeit, über USB-Out des 
Scanners kommen.

Schwierig, kompliziert, zu aufwändig, (für MICH/DICH nicht machbar)? Ja 
vielleicht. Trotzdem bevor man so etwas pauschal verneint, muss man sich 
natürlich auch immer mal kurz die Frage stellen, ob man diese oder jene 
Aussage z.B. auch bei einem CCC-Treffen voller Überzeugung und ohne 
dabei verlegen in die Ecke schauen zu müssen, vortragen würde?
(Also ich würde mich vermutlich nicht trauen.)

von Guido Körber (Gast)


Lesenswert?

Klar, machen kann man alles, zum Mond fliegen geht ja auch.

Also physikalisch geht sowas, immerhin gibt es USB Protokollanalyzer. 
Und genau so eine Hardware braucht man dazu auch: Eine die die Daten auf 
dem Bus einfach mitprotokolliert. Nur existiert sowas nicht als 
Standardlösung und es gibt keine frei verkäuflichen Chips die das machen 
würden. Also selber bauen, oder einen Analyzer-Hersteller fragen ob man 
eine Sonderversion kriegen kann (sicherlich >1000Euro/Stk. plus ggf. 
Startkosten).

Die notwendige Software um daraus dann sinnvolle Daten zu machen gibt es 
auch nicht als Standard, das Programm eines Analyzers macht sowas 
jedenfalls nicht.

Also wenn da kein gut finanziertes und ausreichend großes Projekt 
dahinter steht: Geht nicht.

von Oliver (Gast)


Lesenswert?

Ein "Standard" bei Scannern ist doch eine einfache Tastaturemulation - 
für den Rechner ist der Scanner eine Tastatur. Stöpsel deinen Scanner 
doch einfach an einen PC, und schau, was passiert. Wenn es funktioiert, 
ist zumindest das Protkoll schon mal bekannt. Der Rest dürfte dann auch 
einfach sein.

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, es gibt schon eine mit gewissem Aufwand realisierbare Möglichkeit.
Voraussetzung dafür ist, daß der Scanner ein HID ist.

Man nehme einen Controller mit USB-Deviceinterface und einen 
USB-Host-Controller mit HID-Unterstützung (hier bietet sich der 
"Vinculum" von FTDI an).

Der Scanner wird als USB Device an den "Vinculum" angeschlossen, damit 
können die vom Scanner erzeugten Daten an den Controller geliefert 
werden.

Auf dem Controller wiederum ist ein USB HID zu implementieren, das 
reicht die vom Scanner gelieferten Daten an den Host-PC weiter.

von chris (Gast)


Lesenswert?

Leichter geht es, wenn du einen PS2 Barcodeskanner nimmst, da genügt
ein normaler Micro, oder auch nur ein Flip-Flop Baustein zur 
Taktsynchronisierung. Aber du könntest es auch im PC lösen, die Daten
dann seriell übertragen und bei beiden eine Tastatureingabe simulieren.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.