Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ft9201-libfprint — Linux-libfprint-Treiber für den Focal-systems FT9201 (2808:93a9) USB-Fingerabdruckleser — führt FocalTechs eigene Windows-Matching-Engine nativ unter Linux aus, kein Wine. Enthält eine Methode zum Portieren anderer Windows-Hello-only-Leser. | Kitploit
Tools/GitHubGitHub/omgrant/ft9201-libfprint
Embedded-System-SicherheitReverse EngineeringHardware-HackingHardware-SicherheitBinäranalyseAuthentifizierungFirmware-Analyse
GitHubomgrant/ft9201-libfprint

ft9201-libfprint

Linux-libfprint-Treiber für den Focal-systems FT9201 (2808:93a9) USB-Fingerabdruckleser — führt FocalTechs eigene Windows-Matching-Engine nativ unter Linux aus, kein Wine. Enthält eine Methode zum Portieren anderer Windows-Hello-only-Leser.

Repository anzeigen
211vor 1 MonatVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ft9201-libfprint

Linux-Fingerabdruckunterstützung für den Focal-systems FT9201 USB-Leser (2808:93a9, verkauft als eigenständiger Windows Hello-Dongle), als libfprint-Treiber.

Focal-systems FT9201 USB-Fingerabdruckleser

Der Sensor ist ein winziger 96×96 optischer Leser. Der eingebaute Matcher von libfprint liefert bei einem so kleinen Bild schlechte Ergebnisse, daher verwendet dieser Treiber stattdessen FocalTechs eigene Matching-Engine — die ftWbioEngineAdapter.dll aus ihrem signierten Windows-Treiber — und führt sie nativ unter Linux mit einem kleinen In-Prozess-PE-Lader. Kein Wine, kein Windows, keine Cloud.

Dieses Repository ist auch eine wiederverwendbare Methode, nicht nur ein einzelner Treiber. Die Technik — die Windows-Matching-Engine eines Herstellers nativ unter Linux auszuführen, ohne Wine — lässt sich auf andere „nur Windows Hello“-Lesegeräte verallgemeinern, einschließlich solcher mit einem SDCP-Sicherheitskanal (die Kryptosensoren der Synaptics/Goodix/ELAN/EgisTec-Klasse), über das optionale Modul src/crypto_shims.c. Der FT9201 ist das ausgearbeitete Beispiel; der In-Prozess-Lader, die WinBio-Brücke und die Krypto-Bypass-Schicht lassen sich auf das nächste Gerät übertragen. Siehe PORTING.md für die Schritt-für-Schritt-Methode und was unverändert übernommen werden kann.

Status

Funktioniert durchgängig auf echter Hardware: Registrieren und Verifizieren über fprintd / Befehlszeilenwerkzeuge und nach der Installation in KDE/GNOME. Es vergleicht Ihren Finger mit dem echten Algorithmus des Herstellers.

Entwickelt und getestet mit diesem speziellen Lesegerät (ASIN B0DK7LQZGH) — der FT9348W-Variante von 2808:93a9.

Einschränkungen:

  • Nur mit dieser FT9348W-Variante des 2808:93a9-Geräts getestet.
  • Der Matcher ist ein proprietäres Blob, das wir aufrufen; wir können keine Fehler darin beheben.
  • Nur x86-64 (die DLL und der Lader sind 64-Bit).

Wie es funktioniert (Kurzfassung)

  • Die USB-Initialisierungs- und Firmware-Boot-Sequenz wurde aus FocalTechs eigenen Treibern zurückentwickelt; die 8051-MCU-Firmware wird hochgeladen, dann startet eine spezifische Register-Konfigurationssequenz das Gerät.
  • Jeder Capture (96×96) wird auf die vom Motor erwarteten 64×80 zentriert zugeschnitten.
  • ft_engine.c ist ein etwa 450-zeiliger Lader, der ftWbioEngineAdapter.dll in den Speicher abbildet, die etwa 90 von ihr importierten kernel32-Funktionen bereitstellt, einen gefälschten Windows-TEB einrichtet und die WinBio-Schnittstelle des Motors für Registrierung/Verifizierung aufruft.
  • Der Lader bildet Code als lese-ausführbar und Daten als lese-schreibbar aus einer Datei im Speicher ab, sodass keine Seite jemals gleichzeitig beschreibbar und ausführbar ist. Das bedeutet, dass er unter der standardmäßigen MemoryDenyWriteExecute-Härtung von fprintd läuft — Sie müssen keine Sicherheitseinstellungen deaktivieren.

Siehe docs/how-it-works.md für die vollständige technische Beschreibung.

Voraussetzungen

Build-Werkzeuge + Build-Abhängigkeiten von libfprint. Auf Fedora/Nobara:

root@kitploit:~
sudo dnf install git meson ninja-build gcc cabextract python3 \
     glib2-devel gusb-devel nss-devel pixman-devel gobject-introspection-devel \
     libgudev-devel systemd-devel

(Debian/Ubuntu: die Entsprechungen — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, plus cabextract.)

Build & Installation

root@kitploit:~
git clone https://github.com/OMGrant/ft9201-libfprint
cd ft9201-libfprint
scripts/fetch-blobs.sh     # pull the vendor DLL + MCU firmware (see note below)
scripts/build.sh           # clone pinned libfprint, graft the driver in, build

Probieren Sie es ohne Installation aus:

root@kitploit:~
FT9201_ENGINE_DLL=$PWD/blobs/ftWbioEngineAdapter.dll \
LD_LIBRARY_PATH=libfprint/build/libfprint \
libfprint/build/examples/enroll

Installieren Sie es für KDE/GNOME/Anmeldung (nebeneinander; die libfprint Ihrer Distribution bleibt unberührt, keine Härtung deaktiviert):

root@kitploit:~
sudo scripts/install.sh
fprintd-enroll

Alles rückgängig machen: sudo scripts/install.sh --uninstall.

Die proprietären Blobs

Dieses Repository enthält keine proprietären Binärdateien. Zwei Dateien gehören FocalTech und werden zur Build-Zeit von scripts/fetch-blobs.sh aus vorhandenen öffentlichen Quellen abgerufen:

Datei

Die Blobs manuell beschaffen

Falls einer der Download-URLs nicht mehr funktioniert, benötigen Sie nur diese beiden Dateien:

  • ftWbioEngineAdapter.dll — durchsuchen Sie den Microsoft Update Catalog nach "FocalTech Electronics Biometric" (Treiber 1.0.3.58, passt zur Hardware-ID USB\VID_2808&PID_93A9). Laden Sie die .cab herunter, extrahieren Sie sie mit cabextract und legen Sie ftWbioEngineAdapter.dll in blobs/ ab.
  • MCU-Firmware — besorgen Sie sich eine beliebige Kopie des FocalTech Linux libfprint-Blobs, das das Symbol FOCALFP_9348_FW_APP enthält (z. B. aus ft9201-static) und führen Sie python3 scripts/extract-firmware.py <diese-libfprint-2.so> src/ft9201_fw.h aus.

Führen Sie dann erneut scripts/build.sh aus.

Danksagungen

  • USB-Protokoll ursprünglich zurückentwickelt von banianitc/ft9201-fingerprint-driver.
  • Firmware und die Init-/Boot-Sequenz wurden mit FocalTechs Linux-Blob über mrrbrilliant/ft9201-static abgeglichen.
  • Basierend auf libfprint.

Die wiederverwendbare Methode und der Kryptosensor-Pfad bauen zusätzlich auf der Arbeit dieser Personen auf:

  • uunicorn — dessen synaWudfBioUsb-sandbox und Wine-Fork die Umgebung zum Verfolgen eines Windows-Biometrietreibers eines Herstellers unter Wine sind, wodurch das Befehlsprotokoll eines Kryptosensors ohne eine Windows-Box wiederhergestellt wird.
  • Marco Trevisan (3v1n0), ein libfprint-Maintainer — der den Weg zu diesem Wine-Tracing-Ansatz wies und dessen Bestreben, libfprints eigenes Matching zu verbessern, den Rahmen dafür liefert, warum der Hersteller-Matcher-Weg überhaupt existiert.
  • championswimmer/libfprint-eh577 — Vorarbeit für die EgisTec EH577-Sensorfamilie.

Andere Möglichkeiten, einen FT9201 unter Linux zu betreiben

Dies ist nicht der einzige Ansatz — die Alternativen unterscheiden sich hauptsächlich darin, wie sie FocalTechs Matcher wiederverwenden (das tun sie alle; der winzige Sensor schließt generisches Matching aus).

  • Romk-a/ft9201-linux-setup — eine Debian/Ubuntu (Astra Linux)-Anleitung, die FocalTechs vorgebauten proprietären Linux „TOD“-Treiber installiert (von ryenyuku/libfprint-ft9201; Fedora-RPMs gab es auch) und per Binärpatch dessen USB-ID-Tabelle (9338 → 93a9) ändert.
    • Wie es sich vergleicht: dieser Weg ist weniger Arbeit — ein .deb installieren, zwei Bytes patchen, keine Rückentwicklung. Aber er erfordert TOD-fähiges libfprint (Debian/Ubuntu-Familie; nicht auf Standard-Fedora/Arch), er ersetzt Ihr gesamtes System-libfprint durch einen alten, vollständig geschlossenen Build, und Sie müssen sich mit dem Paketmanager herumschlagen, um es fixiert zu halten. Dieses Projekt liefert stattdessen einen offenen Treiber, installiert nebeneinander (die libfprint Ihrer Distribution bleibt unberührt), läuft auf mainline libfprint ohne TOD und lädt nur die isolierte, herstellereigene Matcher-DLL — was den gesamten Rückentwicklungsaufwand ausmacht.
    • Kurzfassung: auf Debian/Ubuntu ist der TOD-Weg der einfache Knopf; auf Fedora/Arch, oder wenn Sie es offen und nicht-invasiv möchten, verwenden Sie dieses.
  • Kernel-Treiber existieren (banianitc — die Protokollreferenz, von der dieses Projekt zurückentwickelt wurde, bm16ton/ft92010x9338), aber sie integrieren sich nicht in libfprint/fprintd, daher gibt es keine Anmelde-/PAM-Unterstützung.

Der proprietäre Linux TOD-Treiber, den diese .deb/RPM-Pakete weiterverteilen, scheint eine FocalTech/GPD-Veröffentlichung für das GPD Win 4 gewesen zu sein, die später aus dem offiziellen Vertrieb genommen wurde — weshalb er heute nur noch als Community-Neubereitstellungen überlebt. (Beachten Sie auch, dass einige GPD Win 4-Geräte einen völlig anderen Sensor enthalten, einen Chipsailing CS9711, nicht dieses FocalTech-Teil.)

Verwandte Projekte

  • championswimmer/libfprint-eh577 — ein Linux-Treiberprojekt für den EgisTec EH577 (1c7a:0577), ein weiteres Drucktyp-„nur Windows Hello“-Lesegerät (52×72 aktiver Sensor). Anderer Hersteller und USB-Protokoll, aber die gleiche Match-on-Host-Struktur: Sein Windows-Paket enthält eine DLL des Hersteller-Engine-Adapters (EgisTouchFPEngine0577.dll, keine VBS-Enklave), daher ist die Methode in PORTING.md auch darauf anwendbar.
  • OMGrant/eh577-libfprint — diese Methode wurde durchgehend auf den EgisTec EH577 übertragen und als funktionierender Treiber veröffentlicht. Die §3b-Kryptotechniken wurden gegen seine SDCP-Builds validiert; der verteilte Treiber zielt auf einen Pre-SDCP-Katalog-Build (einen reinen Software-Matcher — siehe §3b's Hinweis zur Build-Auswahl), registriert und verifiziert echte Finger unter Linux.

Lizenz

Der Treiber und der Lader (src/, scripts/) sind LGPL-2.1-or-later, entsprechend libfprint. Die FocalTech-DLL und -Firmware sind ihr eigenes Eigentum und werden hier nicht verteilt — Sie besorgen sie selbst. Dieses Projekt ist ein Interoperabilitätswerkzeug für Hardware, die Sie besitzen; es enthält keinen FocalTech-Code und lizenziert diesen auch nicht neu.

Tool herunterladen
Was es ist
Woher es kommt
ftWbioEngineAdapter.dlldie Matching-EngineFocalTechs signierter Windows-Treiber im Microsoft Update Catalog
FT9348W MCU-Firmware (src/ft9201_fw.h)8051-Firmware, die der Sensor ausführtextrahiert (Symbol FOCALFP_9348_FW_APP) aus dem öffentlichen ft9201-static Blob