Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ft9201-libfprint — Focal-systems FT9201 (2808:93a9) USB 지문 인식기를 위한 Linux libfprint 드라이버 — Linux에서 기본적으로 FocalTech의 자체 Windows 매칭 엔진을 실행하며, Wine이 필요 없습니다. 다른 Windows Hello 전용 리더기를 포팅하는 방법도 포함되어 있습니다. | Kitploit
도구/GitHubGitHub/omgrant/ft9201-libfprint
Embedded Systems SecurityReverse EngineeringHardware HackingHardware SecurityBinary AnalysisAuthenticationFirmware Analysis
GitHubomgrant/ft9201-libfprint

ft9201-libfprint

Focal-systems FT9201 (2808:93a9) USB 지문 인식기를 위한 Linux libfprint 드라이버 — Linux에서 기본적으로 FocalTech의 자체 Windows 매칭 엔진을 실행하며, Wine이 필요 없습니다. 다른 Windows Hello 전용 리더기를 포팅하는 방법도 포함되어 있습니다.

저장소 보기
2111개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ft9201-libfprint

리눅스 지문 인식 지원을 위한 Focal-systems FT9201 USB 리더기 (2808:93a9, 독립형 Windows Hello 동글로 판매됨)의 libfprint 드라이버입니다.

Focal-systems FT9201 USB 지문 판독기

센서는 작은 96×96 광학 리더기입니다. libfprint의 내장 매처는 그렇게 작은 이미지에서 성능이 좋지 않으므로, 이 드라이버는 대신 FocalTech 자체 매칭 엔진 — 서명된 Windows 드라이버의 ftWbioEngineAdapter.dll — 을 재사용하며, 작은 인프로세스 PE 로더로 리눅스에서 네이티브로 실행합니다. Wine, Windows, 클라우드가 필요 없습니다.

이 저장소는 단순한 드라이버가 아니라 재사용 가능한 방법론입니다. 이 기술 — Wine 없이 리눅스에서 벤더의 Windows 매칭 엔진을 네이티브로 실행 — 은 다른 "Windows Hello 전용" 리더기로 확장되며, SDCP 보안 채널이 있는 것들 (Synaptics/Goodix/ELAN/EgisTec 계열 암호화 센서)까지 포함하며, 선택적 src/crypto_shims.c 모듈을 통해 가능합니다. FT9201은 작업 예제이며, 인프로세스 로더, WinBio 브리지, 암호화 우회 계층은 다음 장치로 이어집니다. 단계별 방법과 그대로 재사용할 사항은 **PORTING.md**를 참조하세요.

상태

실제 하드웨어에서 종단 간 작동: fprintd / 명령줄 도구를 통해 등록 및 확인 가능하며, 설치 후 KDE/GNOME에서 사용 가능합니다. 벤더의 실제 알고리즘을 사용하여 지문을 매칭합니다.

다음 리더기에서 개발 및 테스트되었습니다: 이 특정 리더기 (ASIN B0DK7LQZGH) — 2808:93a9의 FT9348W 변형.

주의사항:

  • 2808:93a9 장치의 해당 FT9348W 변형에서만 테스트됨.
  • 매처는 우리가 호출하는 독점 바이너리 blob입니다; 내부 버그를 수정할 수 없습니다.
  • x86-64 전용 (DLL과 로더는 64비트).

작동 방식 (간략 버전)

  • USB 초기화 및 펌웨어 부트 시퀀스는 FocalTech 자체 드라이버에서 리버스 엔지니어링되었습니다; 8051 MCU 펌웨어가 업로드된 후, 특정 레지스터 구성 시퀀스가 시작됩니다.
  • 각 캡처(96×96)는 엔진이 예상하는 64×80으로 중앙 크롭됩니다.
  • ft_engine.c는 약 450줄의 로더로, ftWbioEngineAdapter.dll을 메모리에 매핑하고, 가져오는 약 90개의 kernel32 함수를 제공하며, 가짜 Windows TEB를 설정하고, 등록/확인을 위해 엔진의 WinBio 인터페이스를 호출합니다.
  • 로더는 메모리 내 파일에서 코드 읽기-실행과 데이터 읽기-쓰기를 매핑하므로, 어떤 페이지도 쓰기 가능 및 실행 가능하지 않습니다. 즉, fprintd의 기본 MemoryDenyWriteExecute 강화 설정에서 실행되며, 보안 설정을 비활성화할 필요가 없습니다.

전체 기술 문서는 docs/how-it-works.md를 참조하십시오.

요구 사항

빌드 도구 + libfprint의 빌드 종속성. 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: 해당 패키지 — libglib2.0-dev libgusb-dev libnss3-dev libpixman-1-dev libgudev-1.0-dev libsystemd-dev, 추가로 cabextract.)

빌드 및 설치

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

설치하지 않고 시도해보기:

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

KDE/GNOME/로그인용 설치 (병렬 설치; 배포판의 libfprint은 그대로 두며, 강화 설정이 비활성화되지 않습니다):

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

모든 것을 되돌리려면: sudo scripts/install.sh --uninstall.

독점 바이너리 blob

이 저장소는 독점 바이너리를 포함하지 않습니다. 두 파일은 FocalTech의 것이며, 빌드 시 scripts/fetch-blobs.sh에 의해 기존 공개 소스에서 가져옵니다:

파일설명출처

수동으로 blob 가져오기

어느 다운로드 URL이 변경된 경우에도 다음 두 파일만 있으면 됩니다:

  • ftWbioEngineAdapter.dll — Microsoft 업데이트 카탈로그에서 "FocalTech Electronics Biometric" (드라이버 1.0.3.58, 하드웨어 ID USB\VID_2808&PID_93A9와 일치)을 검색하십시오. .cab을 다운로드하여 cabextract로 추출하고 ftWbioEngineAdapter.dll을 blobs/에 넣으십시오.
  • MCU 펌웨어 — FOCALFP_9348_FW_APP 심볼을 포함하는 FocalTech Linux libfprint blob의 사본을 가져와서 (예: ft9201-static에서) python3 scripts/extract-firmware.py <that-libfprint-2.so> src/ft9201_fw.h를 실행하십시오.

그런 다음 scripts/build.sh를 다시 실행하십시오.

크레딧

  • USB 프로토콜은 banianitc/ft9201-fingerprint-driver에 의해 리버스 엔지니어링되었습니다.
  • 펌웨어 및 초기화/부트 시퀀스는 mrrbrilliant/ft9201-static을 통해 FocalTech의 Linux blob과 교차 참조되었습니다.
  • libfprint를 기반으로 구축되었습니다.

재사용 가능한 방법론과 암호화 센서 경로는 다음 작업을 추가로 기반으로 합니다:

  • uunicorn — 의 synaWudfBioUsb-sandbox와 wine fork는 Wine에서 벤더의 Windows 생체 인식 드라이버를 추적하는 도구로, Windows 박스 없이 암호화 센서의 명령 프로토콜을 복구하는 방법입니다.
  • Marco Trevisan (3v1n0), libfprint 유지 관리자 — Wine 추적 접근 방식을 제시했으며, libfprint 자체 매칭을 개선하려는 그의 노력은 벤더 매처 경로가 존재하는 이유를 설명합니다.
  • championswimmer/libfprint-eh577 — EgisTec EH577 센서 제품군의 선행 사례.

Linux에서 FT9201을 실행하는 다른 방법

이것이 유일한 접근 방식은 아닙니다 — 대안들은 주로 어떻게 FocalTech의 매처를 재사용하는지에서 다릅니다 (모두 재사용합니다; 작은 센서는 일반 매칭을 불가능하게 합니다).

  • Romk-a/ft9201-linux-setup — Debian/Ubuntu (Astra Linux) 가이드로, FocalTech의 사전 빌드된 독점 Linux "TOD" 드라이버 ( ryenyuku/libfprint-ft9201에서 가져옴; Fedora RPM도 존재했음)를 설치하고 USB-ID 테이블을 바이너리 패치(9338 → 93a9)합니다.
    • 비교: 이 경로는 작업이 적습니다 — .deb를 설치하고 두 바이트를 패치하며 리버스 엔지니어링이 필요 없습니다. 하지만 TOD 지원 libfprint가 필요하며 (Debian/Ubuntu 계열; 기본 Fedora/Arch에는 없음), 시스템 전체 libfprint를 오래되고 완전히 폐쇄된 빌드로 교체하며, 패키지 관리자와 싸워 고정시켜야 합니다. 반면 이 프로젝트는 오픈 드라이버를 제공하고, 병렬 설치 (배포판의 libfprint은 그대로 둠), TOD가 없는 메인라인 libfprint에서 실행되며, 분리된 벤더 매처 DLL만 로드합니다 — 이것이 리버스 엔지니어링의 성과입니다.
    • 요약: Debian/Ubuntu에서는 TOD 경로가 쉬운 버튼입니다; Fedora/Arch에서는, 또는 오픈되고 비침습적인 방법을 원한다면 이것을 사용하세요.
  • 커널 드라이버도 존재합니다 (banianitc — 이 프로젝트가 리버스 엔지니어링한 프로토콜 참조, bm16ton/ft92010x9338) 그러나 libfprint/fprintd와 통합되지 않으므로 로그인/PAM 지원이 없습니다.

해당 .deb/RPM 패키지가 재배포하는 독점 Linux TOD 드라이버는 GPD Win 4용 FocalTech/GPD 릴리스였으며 나중에 공식 배포에서 제거된 것으로 보입니다 — 그래서 지금은 커뮤니티 재호스트로만 존재합니다. (또한 일부 GPD Win 4 장치는 이 FocalTech 부품이 아닌 다른 센서인 Chipsailing CS9711을 탑재합니다.)

관련 프로젝트

  • championswimmer/libfprint-eh577 — EgisTec EH577 (1c7a:0577)용 Linux 드라이버 노력, 또 다른 누름식 "Windows Hello 전용" 리더기 (52×72 활성 센서). 다른 벤더와 USB 프로토콜이지만 동일한 호스트 매칭 형태: Windows 패키지에는 벤더 엔진 어댑터 DLL (EgisTouchFPEngine0577.dll, VBS 엔클레이브 없음)이 포함되어 있으므로 **PORTING.md**의 방법이 적용됩니다.
  • OMGrant/eh577-libfprint — 이 방법을 EgisTec EH577에 종단 간 적용하여 작동 드라이버로 게시했습니다. §3b 암호화 기술은 SDCP 빌드에 대해 검증되었습니다; 배포된 드라이버는 SDCP 이전 카탈로그 빌드 (순수 소프트웨어 매처 — 빌드 선택에 대한 §3b의 주석 참조)를 대상으로 하며, Linux에서 실제 지문을 등록하고 확인합니다.

라이선스

드라이버와 로더 (src/, scripts/)는 libfprint와 동일한 LGPL-2.1 이상입니다. FocalTech DLL과 펌웨어는 해당 회사의 자산이며 여기에 배포되지 않습니다 — 사용자가 직접 가져와야 합니다. 이 프로젝트는 사용자가 소유한 하드웨어를 위한 상호 운용 도구입니다; FocalTech 코드를 포함하거나 재라이선스하지 않습니다.

도구 다운로드
ftWbioEngineAdapter.dll
매칭 엔진
Microsoft 업데이트 카탈로그의 FocalTech 서명 Windows 드라이버
FT9348W MCU 펌웨어 (src/ft9201_fw.h)센서가 실행하는 8051 펌웨어공개 ft9201-static blob에서 추출 (심볼 FOCALFP_9348_FW_APP)