Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Windows Credential Provider -- Pipe-Controlled Unlock

A Windows 11 credential provider DLL that accepts unlock commands over a named pipe. Any application that can write to a pipe can unlock the lock screen or approve a credential prompt -- no Windows Hello enrollment, no built-in biometric hardware required.

How It Works

Your App ──UNLOCK:.\user:pass──> \\.\pipe\CredentialProviderPipe ──> UnlockProvider.dll ──> Windows LSA ──> Unlock

The DLL runs inside LogonUI.exe on the lock screen. When your app sends a command, the DLL packages the credentials and hands them to Windows for validation. If valid, the workstation unlocks.

Build

Requires VS2022 with C++ desktop workload.

build.bat

Produces UnlockProvider.dll and test_unlock.exe.

Install

register.bat &:: Run as Administrator

Test

test_unlock.exe myuser mypassword
test_unlock.exe myuser mypassword MYDOMAIN

Locks the screen, waits 5 seconds, sends the unlock command.

Uninstall

unregister.bat &:: Run as Administrator

Usage Scenarios

Face Recognition

A camera service runs in the background. When the lock screen appears, it captures a frame, runs face detection, and if the face matches the enrolled user, sends the unlock command. The user walks up to the PC and it unlocks.

Camera -> Face Detection Model -> Match? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Works with any face recognition stack: OpenCV + dlib, MediaPipe, Azure Face API, AWS Rekognition, a custom ONNX model -- anything that can produce a match/no-match result.

Voice Activation

A microphone listener runs in the user session. It performs speech-to-text (locally with Vosk/Whisper or via a cloud API). When a trigger phrase is recognized ("unlock my computer", a custom passphrase, or a voice biometric match), it sends the unlock command.

Microphone -> Speech-to-Text -> Trigger Phrase? -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Can also be combined with speaker verification: only unlock when the right voice says the right phrase.

Fingerprint / Biometric Hardware

A USB fingerprint reader, palm scanner, or iris camera has its own SDK that fires an event when a known print/pattern is matched. The event handler sends the unlock command.

Fingerprint Reader SDK -> Match Event -> UNLOCK:.\user:pass -> Pipe -> Unlocked

This lets you use biometric hardware that Windows Hello does not natively support.

Proximity / Bluetooth

A companion app on the user's phone advertises a BLE beacon. A background service on the PC monitors RSSI. When the phone is within range and the screen is locked, it unlocks. When the phone leaves range, it locks.

Phone BLE Beacon -> PC BLE Scanner -> In Range? -> UNLOCK:.\user:pass -> Pipe -> Unlocked
Phone out of range -> LockWorkStation()

Smart Card / NFC

An NFC reader detects a known badge or smart card. The reader's SDK fires a card-read event containing a card UID. The handler maps the UID to stored credentials and sends the unlock command.

NFC Reader -> Card UID -> Lookup Credentials -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Kiosk / Shared Terminal

A kiosk application manages user sessions. When a customer authenticates through the kiosk UI (PIN, QR code scan, membership card), the kiosk app unlocks the workstation to their profile and locks it again when the session ends.

Kiosk UI -> Customer Authenticated -> UNLOCK:.\kiosk_user:pass -> Pipe -> Unlocked
Session End -> LockWorkStation()

Remote Administration

A management tool on the network needs to unlock a workstation for remote maintenance. An agent running on the target machine receives the command over a secure channel and relays it to the local pipe.

Admin Console -> TLS/SSH to Agent -> Agent -> UNLOCK:.\admin:pass -> Pipe -> Unlocked

Multi-Factor Combination

Combine any of the above. A service requires both face match AND voice passphrase before sending the unlock command.

Face Match = true AND Voice Match = true -> UNLOCK:.\user:pass -> Pipe -> Unlocked

Pipe Protocol

ItemValue
Pipe path\\.\pipe\CredentialProviderPipe
CommandUNLOCK:domain\username:password
Domain. for local, NetBIOS name for domain
ResponseOK or ERR:INVALID_CMD / ERR:NO_PROVIDER / ERR:PROVIDER_FAILED

OK = credentials handed to Windows. Logon result (success/wrong password/locked account) appears on the lock screen.

SDKs

LanguageSourceDocs
Pythonsdk/python/credential_provider.pydocs/SDK_Python.md
Node.jssdk/nodejs/credential-provider.jsdocs/SDK_NodeJS.md
Delphisdk/delphi/CredentialPipe.pasdocs/SDK_Delphi.md

All SDKs have zero third-party dependencies. Any language that can open a named pipe works -- the protocol is 1 write + 1 read of a UTF-8 string.

Debugging

Run Sysinternals DebugView as Administrator with "Capture Global Win32" enabled. The DLL logs every step with [UnlockProvider], [Credential], and [PipeListener] prefixes.

Security

  • Pipe DACL: SYSTEM and Administrators get full access, Authenticated Users get read/write, Anonymous and Network are denied.
  • Remote pipe connections are blocked (PIPE_REJECT_REMOTE_CLIENTS).
  • Pipe squatting is prevented (FILE_FLAG_FIRST_PIPE_INSTANCE).
  • Passwords are wiped with SecureZeroMemory after use.
  • DLL installs to C:\Windows\System32 (admin-writable only).

About

win10+ custom credential store, unlock your computer with one api call.

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages