I have a fingerprint reader on my laptop that works under windows that doesn't show up on lsusb. Which means its not connected via USB. Through some digging around, I found out that this specific device connects via SPI. I've seen some tutorials on the internet about reverse engineering windows USB drivers for linux but not for something like this.

My device is an ELAN 04f3:3104 embedded fingerprint reader that works with the windows WBF fingerprint reader driver. Any pointers much appreciated!

  • 1
    wireshark is able to trace USB data - that could be a way to get the protocol - and there is a hid/i2c/... driver in linux: dri.freedesktop.org/docs/drm/hid/hid-transport.html, or something microsoft pushed to the linux kernel: patchwork.kernel.org/project/linux-input/patch/…, here is a discussion on github: github.com/iafilatov/libfprint/issues/12, and a github project talking about your ELAN devices: github.com/mincrmatt12/elan-spi-fingerprint - maybe you get more details there
    – llm
    Sep 17, 2023 at 5:47
  • @llm yeah I took a look at that repo you were talking about. It managed to detect my device but taking an actual image of my fingerprint doesnt work. He did say in that repo that there was some special case logic implemented in the windows driver for this specific device. That's why im looking for way to implement the rest of it myself Sep 18, 2023 at 7:24
  • Hi and welcome to RE.SE. You really need to give more detail. Assuming a KM driver, there are plenty of driver models. I think without knowing at least some basics from the WDK docs and Windows KM concepts there's only a slim chance you'll be able to make sense of such a driver. Is the driver perhaps publicly downloadable somewhere so one could have a look?
    – 0xC0000022L
    Sep 22, 2023 at 22:58


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.