CryptDisk is debugged using WinDbg between two VMware VM's, VisualStudio and WinDbg are running in VS17c and the target is running CryptDisk in the Win10-1703 VM. (\\Green\Volumes\Win10-1703)
Driver signing is not required IF kernel debug is enabled in the target VM. (See ).
I knew this would be a problem eventually...
S:\Src\HQ\Dev\SB\Chip\VirtualDisk\CryptDisk>dir \\win10-1703\Test
The system cannot contact a domain controller to service the authentication request. Please try again later.
I recently moved, leaving my domain controller (Hush) behind, and
have been relying on cached domain credentials. This works for local
stuff (UAC and system updates) but any real network access between
different machines must be authenticated by the domain controller
(or referring to Hush for the name lookup) --
which is nowhere to be found.
This presents a big problem, since the solution requires either
#1 is the easiest but takes time, and Hush was never very good at its job due to being woefully short on RAM.
#2 is the right solution. But this is a huge, invasive interruption with a high risk of data loss as any data and files tied to the old domain will become inaccessible when the machines are migrated to the new domain. If I embark on this path, I need to be extremely diligent about copying all my files, data, and configurations to external storage that will remain accessible from the new domain account(s).
It is always something...
WORKAROUND:
I can defer this issue by replacing the machine name with its
IP address. This works because Win10-1703 is sharing its directories
to EVERYONE.
S:\Src\HQ\Dev\SB\Chip\VirtualDisk\CryptDisk>dir \\192.168.0.217\Test
Volume in drive \\192.168.0.217\Test has no label.
Volume Serial Number is E4E6-32BD
Directory of \\192.168.0.217\Test
01/10/2019 07:36 PM <DIR> .
01/10/2019 07:36 PM <DIR> ..
12/18/2018 04:47 PM <DIR> CryptDisk
04/06/2018 06:40 PM <DIR> Eps13
08/28/2018 01:42 PM <DIR> mnt
07/26/2018 04:07 PM <DIR> nurl
05/14/2018 12:18 PM <DIR> Out
05/18/2018 12:19 PM <DIR> symchk
01/28/2018 01:30 PM <DIR> VS17
01/10/2019 07:43 PM <DIR> winfsp
01/10/2019 07:36 PM <DIR> WinFSPX
0 File(s) 0 bytes
11 Dir(s) 23,225,282,560 bytes free
Debugging a user-mode process is actually a bit trickier than debugging the driver.
WinDbg needs to break in user-mode to set user-mode breakpoints. It is not able to set breakpoints in CryptDisk.exe from the breakpoint in CryptDriver.sys!DriverEntry.
WinDbg can launch a new process:
.create
WinDbg can attach to an existing process:
.attach processID
Get the processID from .tlist
Using Visual Studio (See ):
Set Project Properties > Debugging > Debugger to launch: to
Remote Windows Debugger. Launch Remote Debugger on the target.
I had problems connecting, with VS reporting "connection terminated." This means there was no firewall or network problems (that triggers a different error message) and the remote debugger on the target was rejecting the connection due to failed authentication. I eventually realized this because the Microsoft Domain situation had changed and Win10Target was no longer part of the domain, and was unable to authenticate the user account Visual Studio was presenting. I changed the connection type to "no authentication" and was able to connect. Since correcting the domain situation is a daunting oddysey and there is ZERO chance of some hacker invading my local network, running without authentication is perfectly fine by me. Microsoft, on the other hand, thinks this is a very bad idea and changes the settings back to "with authentication" every time it starts.
Updating CryptDisk is easy, just overwrite the binaries with the new versions. (I typically just copy them to C:\Bin)
I may see a warning when I try to run the new version:
I'm not sure which version of Windows introduced this, I first
started seeing it in Dec 2019. It is yet another attempt by Microsoft
to pretend it is providing security when it is actually not. It is
pointless to tell me that an app is running when I just explicitly
launched it, without telling me anything about what the app is
doing. The natural reaction will always be to click "Run anyway",
allowing Microsoft to then disavow any responsibility for what the
program is then allowed to do.
Real security would be to allow me to know what system services the app is tying to use and then be able to allow or disallow those actions before they happen -- not just an all-or-nothing uninformed choice at install time.
Anyway, just click "Run anyway" and the new version of CryptDisk.exe will be registered as an allowed app.
See also: