| Project | Description |
|---|---|
AuthPkgTester |
Tool for testing custom authentication packages. |
CredUITester |
Tool for testing CredUI-based authentication |
NoPasswordAuthPkg |
Sample authentication package to allow interactive logon without having to type the password. |
ReversePasswordCredProv |
Sample Windows Credential Provider that requires the password to be typed backwards. |
ReversePasswordEventProv |
Event provider for logging to the Windows Event Viewer. |
WebCredMgr |
Read and write to the Windows Credential Manager secure storage. |
It's recommended to test in a disposable Virtual Machine (VM), since credential provider problems might break the windows logon screen. You don't want to risk that on your main computer.
- Open solution in Visual Studio and build the projects in release or debug mode.
- Copy the build artifacts to the test environment.
- Run
REGISTER_ReversePasswordCredProv.batas administrator.
-
Log screen, log out or restart the computer.
-
Observe that there's now a new "RP" sign-in option that requires the password to be typed backwards:

-
It's also possible to test the "RP" credential provider by either right-clicking on an application in the Windows start menu, and selecting "Run as administrator", or run
Start-Process cmd.exe -Verb RunAsfrom PowerShell:

Password entering can be avoided altogether if NoPasswordAuthPkg is also installed and a removable drive with a magic file present. This can be done by running Install_NoPasswordAuthPkg.ps1 as administrator and restarting afterwards.
- Right click on
UNREGISTER_ReversePasswordCredProv.batand select "Run as administrator".
- Show authentication dialog: CredUIPromptForWindowsCredentials
- Logoff, shutdown or restart: ExitWindowsEx with
EWX_LOGOFF,EWX_POWEROFForEWX_REBOOTparameter. - Lock desktop: LockWorkStation (same as Ctrl+Alt+Del and click "Lock")
- Authenticate to impersonate a user: LogonUserW
- Credential providers in Windows
- Credential Provider driven Windows Logon Experience (converted https://go.microsoft.com/fwlink/?LinkId=717287 from XPS to PDF)
- Windows-classic-samples CredentialProvider
- Win7Samples credentialproviders
- LSA Authentication Model
- Creating Custom Security Packages
- MSV1_0 Authentication Package is used for local machine logons (Kerberos is used for network logons).
Windows Credential Manager lets users store credentials relevant to other systems and websites in the secure Windows Vault. It is not used for local on-device authentication.
Links:
- GUI tool:
control.exe keymgr.dll - Microsoft wincred.h API listing (use
CredWriteWandCredReadW)