Das ist eine Feld-Wald-und-Wiesen-Maus
Bei HID-Geraeten tauscht man Datenbloecke (Reports) aus, die kompliziert strukturiert sein koennen. Bei der Maus
Code:
"USB Mouse" VID=$046D PID=$C00C
UsagePage=Generic Desktop ($0001) Usage=Mouse ($0002) CollectionType=Application ($01)
Button Feature: UsagePage=Generic Desktop ($0001) Usage=Motion Wakeup ($003C)
UsagePage=Generic Desktop ($0001) Usage=Pointing Device ($0001) CollectionType=Physical ($00)
Button Input Range: UsagePage=Button ($0009) 1..3
Value Input: UsagePage=Generic Desktop ($0001) Usage=Wheel ($0038)
Value Input: UsagePage=Generic Desktop ($0001) Usage=Y Axis ($0031)
Value Input: UsagePage=Generic Desktop ($0001) Usage=X Axis ($0030)
sieht man das jedem Wert eine Bedeutung mitgegeben ist. Man koennte also nur den Wert fuer die Y-Achse extrahieren.
Bei deinem Device ist allerdings die Strukturierung wie vermutet nur als Byte-Array angegeben. Das nuetzt also zur Analyse nicht viel.
UsagesDemo gibt die Strukturierung genauer an. Man kann genau einen Reporttyp lesen, der 7 Bytes (Einheiten a 8 Bit) enthaelt. Gleiches gilt fuer den Report den man schreiben darf.
Zur weiteren Analyse setzt man jetzt SimpleHIDWrite ein. Den Read-Button aktivieren und am Geraet rumspielen. Damit sollte man die vom Geraet gesendeten Reports bekommne. Bei 7 Bytes sollte es nicht zu schwierig sein den Inhalt zu erraten. Pech hat man wenn das Geraet nur sendet wenn man es mit einem zu schreibenden Report aktiviert. Da sollte aber ein herzhafter Schreibbefehl mit 0-Bytes gute Chancen haben.
Oft kommuniziert das Programm ueber eine
DLL mit dem Geraet. Da lohnt es sich die Namen der exportierten Funktionen herauszubekommen. Damit laesst sich auf die Strategie der Kommunikation schliessen.