Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ft9201-libfprint — Driver Linux libfprint per il lettore di impronte digitali USB Focal-systems FT9201 (2808:93a9) — esegue il motore di corrispondenza Windows di FocalTech nativamente su Linux, senza Wine. Include un metodo per portare altri lettori solo Windows Hello. | Kitploit
Strumenti/GitHubGitHub/omgrant/ft9201-libfprint
Sicurezza Sistemi EmbeddedReverse EngineeringHacking HardwareSicurezza HardwareAnalisi di BinariAutenticazioneAnalisi del Firmware
GitHubomgrant/ft9201-libfprint

ft9201-libfprint

Driver Linux libfprint per il lettore di impronte digitali USB Focal-systems FT9201 (2808:93a9) — esegue il motore di corrispondenza Windows di FocalTech nativamente su Linux, senza Wine. Include un metodo per portare altri lettori solo Windows Hello.

Vedi Repository
211332 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

ft9201-libfprint

Supporto per impronte digitali su Linux per il lettore USB Focal-systems FT9201 (2808:93a9, venduto come dongle standalone per Windows Hello), come driver libfprint.

Lettore di impronte digitali USB Focal-systems FT9201

Il sensore è un minuscolo lettore ottico 96×96. Il matcher integrato di libfprint lavora male su un'immagine così piccola, quindi questo driver riutilizza invece il motore di riconoscimento di FocalTech — il ftWbioEngineAdapter.dll del loro driver Windows firmato — eseguendolo nativamente su Linux con un piccolo caricatore PE in-process. Niente Wine, niente Windows, niente cloud.

Questa repo è anche un metodo riutilizzabile, non solo un driver. La tecnica — eseguire il motore di riconoscimento Windows di un vendor nativamente su Linux, senza Wine — si generalizza ad altri lettori "solo Windows Hello", inclusi quelli che forniscono un canale sicuro SDCP (i sensori crittografici classe Synaptics/Goodix/ELAN/EgisTec), tramite il modulo opzionale src/crypto_shims.c. Il FT9201 è l'esempio pratico; il caricatore in-process, il bridge WinBio e il livello di bypass crittografico sono trasferibili al prossimo dispositivo. Vedi PORTING.md per il metodo passo-passo e cosa riutilizzare così com'è.

Stato

Funzionante end-to-end su hardware reale: enroll e verify tramite fprintd / strumenti da riga di comando, e in KDE/GNOME dopo l'installazione. Riconosce il dito usando il vero algoritmo del vendor.

Sviluppato e testato con questo esatto lettore (ASIN B0DK7LQZGH) — la variante FT9348W del 2808:93a9.

Avvertenze:

  • Testato solo su quella variante FT9348W del dispositivo 2808:93a9.
  • Il matcher è un blob proprietario che chiamiamo; non possiamo correggere bug al suo interno.
  • Solo x86-64 (la DLL e il caricatore sono a 64 bit).

Come funziona (versione breve)

  • La sequenza di init USB + avvio firmware è stata reverse-engineered dai driver stessi di FocalTech; il firmware MCU 8051 viene caricato, poi una specifica sequenza di configurazione registri lo avvia.
  • Ogni acquisizione (96×96) viene ritagliata al centro a 64×80, come richiesto dal motore.
  • ft_engine.c è un caricatore di ~450 righe che mappa ftWbioEngineAdapter.dll in memoria, fornisce le ~90 funzioni kernel32 che importa, imposta un falso TEB Windows, e chiama l'interfaccia WinBio del motore per enroll/verify.
  • Il caricatore mappa il codice come read-execute e i dati come read-write da un file in memoria, quindi nessuna pagina è mai scrivibile ed eseguibile. Ciò significa che funziona sotto l'hardening predefinito MemoryDenyWriteExecute di fprintd — non devi disabilitare alcuna impostazione di sicurezza.

Vedi docs/how-it-works.md per la documentazione tecnica completa.

Requisiti

Strumenti di build + dipendenze di build di libfprint. Su Fedora/Nobara:

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: gli equivalenti — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, più cabextract.)

Build e installazione

git clone https://github.com/OMGrant/ft9201-libfprint
cd ft9201-libfprint
scripts/fetch-blobs.sh     # scarica la DLL del vendor + firmware MCU (vedi nota sotto)
scripts/build.sh           # clona libfprint fissato, innesta il driver, compila

Prova senza installare nulla:

FT9201_ENGINE_DLL=$PWD/blobs/ftWbioEngineAdapter.dll \
LD_LIBRARY_PATH=libfprint/build/libfprint \
libfprint/build/examples/enroll

Installalo per KDE/GNOME/login (affiancato; il libfprint della tua distribuzione viene lasciato intatto, nessun hardening disabilitato):

sudo scripts/install.sh
fprintd-enroll

Annulla tutto: sudo scripts/install.sh --uninstall.

I blob proprietari

Questa repo non contiene binari proprietari. Due file sono di FocalTech e vengono recuperati da fonti pubbliche esistenti al momento della build da scripts/fetch-blobs.sh:

FileCosa èDa dove proviene
ftWbioEngineAdapter.dllil motore di riconoscimentoDriver Windows firmato di FocalTech dal Microsoft Update Catalog
Firmware MCU FT9348W (src/ft9201_fw.h)Firmware 8051 eseguito dal sensoreestratto (simbolo FOCALFP_9348_FW_APP) dal blob pubblico ft9201-static

Recupero manuale dei blob

Se uno degli URL di download è cambiato, ti servono solo questi due file:

  • ftWbioEngineAdapter.dll — cerca nel Microsoft Update Catalog "FocalTech Electronics Biometric" (driver 1.0.3.58, corrisponde all'hardware ID USB\VID_2808&PID_93A9). Scarica il .cab, estrai con cabextract, e metti ftWbioEngineAdapter.dll in blobs/.
  • Firmware MCU — ottieni una copia del blob Linux libfprint di FocalTech che contiene il simbolo FOCALFP_9348_FW_APP (ad es. da ft9201-static) ed esegui python3 scripts/extract-firmware.py <quel-libfprint-2.so> src/ft9201_fw.h.

Poi esegui di nuovo scripts/build.sh.

Crediti

  • Il protocollo USB è stato originariamente reverse-engineered da banianitc/ft9201-fingerprint-driver.
  • Il firmware e la sequenza di init/avvio sono stati incrociati con il blob Linux di FocalTech tramite mrrbrilliant/ft9201-static.
  • Basato su libfprint.

Il metodo riutilizzabile e il percorso per sensori crittografici si basano inoltre sul lavoro di:

  • uunicorn — il cui synaWudfBioUsb-sandbox e fork di wine sono l'infrastruttura per tracciare un driver biometrico Windows di un vendor sotto Wine, che è come si recupera il protocollo di comando di un sensore crittografico senza una macchina Windows.
  • Marco Trevisan (3v1n0), un manutentore di libfprint — che ha indicato la strada a quell'approccio di tracciamento con Wine, e la cui spinta a migliorare il matcher principale di libfprint a monte spiega perché esista la via del matcher del vendor.
  • championswimmer/libfprint-eh577 — lavoro precedente per la famiglia di sensori EgisTec EH577.

Altri modi per eseguire un FT9201 su Linux

Non è l'unico approccio — le alternative differiscono principalmente in come riutilizzano il matcher di FocalTech (lo fanno tutte; il minuscolo sensore esclude il matching generico).

Scarica lo strumento