FaceWinUnlock-Tauri注册表操作与核心组件部署原理软件如何注入Windows登录界面【免费下载链接】FaceWinUnlock-Tauri一款基于 Tauri 框架开发的现代化 Windows 面容识别解锁增强软件。它通过自定义 Credential Provider (DLL) 注入 Windows 登录界面结合前端 Vue 3 和后端 OpenCV 人脸识别算法为用户提供类似 Windows Hello 的解锁体验。项目地址: https://gitcode.com/gh_mirrors/fa/FaceWinUnlock-TauriFaceWinUnlock-Tauri是一款基于 Tauri 框架开发的 Windows 面容识别解锁软件它的核心套路是通过自定义Credential Provider凭据提供程序DLL注入 Windows 登录界面配合一套精心设计的注册表操作让普通摄像头设备获得类似 Windows Hello 的刷脸解锁体验。这篇文章带你拆解它背后的完整原理注册表写在哪儿、DLL 怎么被 Winlogon 加载、核心组件如何一步步部署到系统里。三大核心组件软件由哪几部分构成在讲注册表之前先理清整个项目的分工这也是阅读 Server/README.md 中核心架构一节的思路组件位置职责管理界面UIUI/Vue 3 Tauri 桌面应用负责面容录入、选项配置、核心组件部署凭据提供程序 DLLServerServer/src/注入 Winlogon 进程的 COM 组件登录界面的驻军解锁服务UnlockUnlock/后台面容识别服务通过管道把凭据喂给 DLL管理界面通过 Tauri 命令调用 Rust 后端完成部署动作注册表写入逻辑位于 UI/src-tauri/src/modules/options.rs部署成功后整个链路就能跑起来了注册表操作详解软件动了哪些系统档案这是全文的重点。FaceWinUnlock-Tauri 对注册表的操作分成三个层次各自作用完全不同。1️⃣ 应用配置区所有用户共享的设置仓库管理界面在保存选项时会把设置写入HKEY_LOCAL_MACHINE\SOFTWARE\facewinunlock-tauri写入逻辑在 options.rs 的write_to_registry命令中先以HKEY_LOCAL_MACHINE为根创建或打开SOFTWARE\facewinunlock-tauri子项再把一组key-value字符串值逐一写入。为什么要用 HKLM 而不是 HKCU因为登录阶段的 DLL 运行在系统级进程 Winlogon 中它不属于任何用户会话只能读到所有用户的配置。写在 HKCU 的设置在锁屏界面是不可见的。2️⃣ DLL 读取区加载时即生效的启动参数DLL 在被 Winlogon 加载的瞬间DllMain的DLL_PROCESS_ATTACH阶段就会主动回读这个注册表项。核心函数read_facewinunlock_registry位于 Server/src/lib.rs它使用 Win32 APIRegOpenKeyExW/RegQueryValueExW以只读方式打开 HKLM 下的配置项。目前已知的读取项包括见 Server/src/lib.rs#L251-L300 的DllMainDLL_LOG_PATHDLL 日志文件存放路径。DLL 加载后立即在此目录下创建facewinunlock.log方便排查登录阶段的问题SHOW_TILE是否在锁屏界面显示软件磁贴CSampleProvider.rs#L172-L207设为0即可隐藏磁贴。这里体现了一个经典设计DLL 本身不带配置所有可改的开关都放在注册表里用户修改设置后无需重新部署 DLL下一次锁屏即生效。3️⃣ 注入的关键Credential Provider GUID 注册项这是整个软件能出现在登录界面的根本所在。Windows 的凭据提供程序机制约定凡是在下列路径注册了 GUID 子项的 COM 组件都会被 Winlogon 自动加载HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\Credential Providers\{8a7b9c6d-4e5f-89a0-8b7c-6d5e4f3e2d1c}这个 GUID 与 DLL 中定义的CLSID_SampleProvider严格一致Server/src/lib.rs#L121-L123。系统加载 DLL 后会依次调用它导出的三个标准 COM 入口见 Server/exports.defDllGetClassObject按 CLSID 匹配后返回类工厂lib.rs#L196-L229DllCanUnloadNow/ 引用计数保证 DLL 可被安全卸载。一句话总结注册 GUID 拿到登录界面的入场券。核心组件部署流程初始化向导做了什么部署动作由初始化向导 UI/src/views/Init.vue 驱动分三步执行。第一步环境检测调用check_admin_privileges与check_camera_status两个 Tauri 命令lib.rs#L170-L175确认管理员权限写 HKLM 和 System32 的硬前提与摄像头可用。第二步系统部署点击执行部署后触发deploy_core_componentsInit.vue#L72-L102核心就是两件事复制 DLL到C:\Windows\System32\FaceWinUnlock-Tauri.dll修改注册表在 Credential Providers 路径下写入 GUID 子项并配置HKEY_LOCAL_MACHINE\SOFTWARE\facewinunlock-tauri各项参数。由于直接触碰 Winlogon 配置向导会先弹出风险提示并强烈建议拍照留档其中给出了崩溃时的自救路径——删 DLL 或删 GUID 注册项即可恢复⚠️ 这也是官方 README 反复强调的风险错误修改注册表可能导致登录界面无法显示建议在虚拟机中先试验。第三步账户验证调用test_win_logon命令做一次真实测试锁屏 → 通过已部署的 DLL 自动回注凭据 → 5 秒内自动解锁。走通这一步才说明注册表 DLL部署真正生效Init.vue#L104-L140。注入之后Windows 自动解锁的完整链路部署完成后每次锁屏解锁时 DLL 内部发生了什么下面这张流程图源自 Server/README.md 的实现流程完整概括了四个阶段初始化阶段DLL 加载Winlogon 加载 DLL 执行DllMain经类工厂创建SampleProvider实例读取注册表、获取 LSA 认证包 IDCSampleProvider.rs#L233-L269管道监听Advise系统回调Advise时启动CPipeListener后台线程等待凭据数据CSampleProvider.rs#L86-L98数据接收管道通信解锁服务Unlock/完成面容识别后把用户名/密码经命名管道写入 DLLis_unlocked置位通知系统重查GetCredentialCount从而触发pbautologonwithdefault自动登录CSampleProvider.rs#L172-L207凭据序列化登录系统调用GetSerializationDLL 用CredPackAuthenticationBufferW将凭据打包为 LSA 可识别的序列化缓冲区发送 LSA 校验密码正确即登录成功CSampleCredential.rs#L181-L191。管理界面侧对解锁服务的健康检查同样走管道向\\.\pipe\MansonWindowsUnlockRustUnlock写入探测数据即可判断服务是否在跑api.rs#L245-L264。自启动与卸载部署的另一面自启动不走注册表 Run 键而是用计划任务实现api.rs#L188-L224schtasks创建名为FaceWinUnlockAutoStart的任务Options.vue 中的调用可选登录时触发或开机时触发两种模式通过查询任务 XML 中是否含LogonTrigger/BootTrigger来判断当前触发方式api.rs#L289-L305。卸载则必须走回原路先在首选项中执行卸载核心组件删除 DLL 与 GUID 注册项再运行安装目录的uninstall.exe移除主程序。NSIS 安装脚本中通过 nsis/hooks.nsh 在安装/卸载前后自动taskkill解锁服务进程避免文件被占用最后手动清理残留的数据库与日志即可做到无残留卸载。总结FaceWinUnlock-Tauri 的注入并不神秘它严格利用了 Windows 官方留出的扩展点用HKLM 下的应用注册表项承载可热更新的配置DLL 加载时即读用Credential Provider GUID 注册项拿到 Winlogon 的加载资格用System32 中的 DLL 命名管道完成识别结果到登录凭据的最后一公里。理解这三处注册表操作你就掌握了它驻留登录界面的全部秘密——也清楚了为什么部署前留档、卸载时走官方流程如此重要。 提示本项目基于 2D 面容识别存在被照片/视频绕过的风险官方建议仅用于个人家用电脑或开发机严禁用于存储高机密数据的办公环境详见 README.md 的安全性说明。【免费下载链接】FaceWinUnlock-Tauri一款基于 Tauri 框架开发的现代化 Windows 面容识别解锁增强软件。它通过自定义 Credential Provider (DLL) 注入 Windows 登录界面结合前端 Vue 3 和后端 OpenCV 人脸识别算法为用户提供类似 Windows Hello 的解锁体验。项目地址: https://gitcode.com/gh_mirrors/fa/FaceWinUnlock-Tauri创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考