181 lines
7.3 KiB
Markdown
181 lines
7.3 KiB
Markdown
---
|
||
title: WinUnLock 项目概述
|
||
type: curated
|
||
permalink: main/projects/ea207d36-693c-4349-b3c8-7c40c8c889f5/curated/win-un-lock-项目概述
|
||
stable_id: baa442ef-76f5-4390-a518-067156d17d3a
|
||
scope: project
|
||
project_id: ea207d36-693c-4349-b3c8-7c40c8c889f5
|
||
workspace_type: development
|
||
usage_profile_id: null
|
||
preference_context: development
|
||
document_type: overview
|
||
revision: 1
|
||
source_memory_ids:
|
||
- 0882a1ad-94c0-4a20-9e3b-f65210c0f8b1
|
||
source_checkpoint_ids: []
|
||
source_file_ids: []
|
||
source_git_commit: null
|
||
source_git_commits: []
|
||
source_agent_sync_ids: []
|
||
model_connection: Sub2API
|
||
model_name: git-restore
|
||
source_count: 12
|
||
source_revisions:
|
||
memory:0882a1ad-94c0-4a20-9e3b-f65210c0f8b1: '1'
|
||
source_dispositions:
|
||
processed: 12
|
||
unchanged: 0
|
||
unsupported: 0
|
||
skipped: 0
|
||
cited_source_ids:
|
||
- project:ea207d36-693c-4349-b3c8-7c40c8c889f5
|
||
- memory:0882a1ad-94c0-4a20-9e3b-f65210c0f8b1
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
- global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e
|
||
job_cited_source_ids:
|
||
- project:ea207d36-693c-4349-b3c8-7c40c8c889f5
|
||
- memory:0882a1ad-94c0-4a20-9e3b-f65210c0f8b1
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
- global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e
|
||
conflicts: []
|
||
supersedes: []
|
||
preferences:
|
||
- statement: 使用最简单且正确的实现(KISS & YAGNI),不为假设的未来需求添加依赖或抽象层。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 优先复用项目已有的框架、服务、工具和约定,避免重复实现。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 在任何登录、SSH、数据库或 API 调用前先查询 Vaultwarden,唯一匹配时自动使用。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 新增或修改的账户、密码、Token、API‑Key 与 TOTP 种子必须立即写入密码库。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 普通记忆只记录密码库条目名称、用途、使用方式,不保存明文凭证。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: AI‑驱动的记忆整理与 Git 同步默认关闭,未开启时系统不应尝试加载模型或创建 `.git` 目录。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
- statement: 项目记忆存放于 `aidocs/project_context.md`,采用秒级时间戳倒序记录,`aidocs/` 加入 `.gitignore`,记忆文件不提交。
|
||
level: scenario
|
||
workspace_types:
|
||
- development
|
||
workspace_ids: []
|
||
source_ids:
|
||
- global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e
|
||
counterexample_source_ids: []
|
||
occurrence_count: 1
|
||
explicit: true
|
||
confidence: 1.0
|
||
status: current
|
||
source_cursor: 89
|
||
source_hash: 2b2e3b97e81a12b79f132b76603f0fc21b774662a94ff357a992fe64de84070a
|
||
prompt_version: 2026-08-12.3
|
||
schema_version: '3'
|
||
curation_job_id: null
|
||
created_at: '2026-08-19T09:41:26.322861+00:00'
|
||
updated_at: '2026-09-23T15:12:16.410267+00:00'
|
||
tags:
|
||
- 项目概述
|
||
- WinUnLock
|
||
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
||
---
|
||
|
||
# WinUnLock 项目概述
|
||
|
||
## 项目定位
|
||
|
||
- **目标**:在用户拥有的 Windows 电脑上,通过用户自行提供的账号密码,实现每日固定时间的自动解锁(锁屏恢复)
|
||
- **合规前提**:全程本地运行,机器归用户所有,凭据仅由用户本人提供,属于合法合规的本机自动化,不涉及未经授权的设备访问。
|
||
|
||
## 技术路线
|
||
|
||
- 使用 **Rust** 实现 **Windows Service** + **Credential Provider**(CP)
|
||
- 锁定会话不能可靠地通过 `SendInput`/键盘模拟解锁,必须走 Credential Provider DLL → LogonUI 的正规凭据提交路径。
|
||
- 关键 API:`Credential Provider COM` 接口、`CPUS_UNLOCK_WORKSTATION`、`GetCredentialCount()`、`GetSerialization()`、`CredPackAuthenticationBufferW`。
|
||
- 建议使用账户的文本密码(而非 Windows Hello PIN)进行自动解锁。
|
||
- 参考项目:
|
||
- 52破解贴([链接](https://www.52pojie.cn/thread-2083713-1-1.html))对应的 Gitee 仓库(Rust 实现 CredentialProvider)
|
||
- GitHub 项目 PsyChip/hodor(C++ 实现,处理管道权限、密码清零等)
|
||
|
||
## 当前状态
|
||
|
||
- 项目根目录 `E:\code\WinUnLock` 仅包含 `AGENTS.md`,尚未初始化代码,也未创建 Git 仓库。
|
||
- 项目已在 MemRelay 中登记,标识为 **development** 工作空间,使用 **shared** 用例配置。
|
||
|
||
## 开发实施原则(引用全局共享规则)
|
||
|
||
- **KISS & YAGNI**:采用最简、正确的实现,不为假设的未来需求添加依赖或抽象(源: `memory:0882a1ad-94c0-4a20-9e3b-f65210c0f8b1`、`global_guidance_memory:bf88c265-4749-4c50-85bc-4bae25298cd5`)。
|
||
- **复用**:优先使用已有框架、服务、工具和约定,避免重复实现(同上)。
|
||
- **凭证边界**:在任何登录、SSH、数据库或 API 调用前先查询 Vaultwarden,唯一匹配自动使用;新增或修改的凭证立即写入密码库,记忆仅记录名称、用途、使用方式(源: `global_guidance_memory:105b328f-4bda-4641-90a7-7282ef156316`)。
|
||
- **可选 AI 与 Git 集成**:默认关闭,不会自动加载模型或创建 `.git` 目录(源: `global_guidance_memory:3f91189b-11a1-45bb-8357-4f413dc1609d`)。
|
||
- **项目记忆与 Git 工作流**:项目记忆保存在 `aidocs/project_context.md`,采用秒级时间戳倒序记录,`aidocs/` 加入 `.gitignore`,完成任务后清理、更新记忆并使用 `type: 中文说明` 形式提交(源: `global_guidance_memory:5ed86f53-b53e-4534-8e51-d3a010069d5e`)。
|
||
|
||
## 开发环境与协作约定
|
||
|
||
- **语言**:中文沟通为默认;如需其他语言需明确声明(源: `global_guidance_document:ff34c6eb-6bba-41e5-9e43-ff80941fa823`)。
|
||
- **平台**:全部命令、路径和验证步骤必须兼容 Windows(同上)。
|
||
- **沟通**:持续通报关键进展,独立完成可直接验证并提交。
|
||
|
||
---
|
||
*本文档基于已登记的项目信息及全局共享规则编写。* |