我开发了磁盘卷加密驱动程序" xxxx_aes"对于像WDM过滤器驱动程序一样实现的MS Windows。 它安装在系统中作为" LowerFilters = xxxx_aes fvevol rdyboost" for" Storage Volumes" class {71A27CDD-812A-11D0-BEC7-08002BE2092F}。
HKLM \ CurrentControlSet \ System \ Services \ xxxx_aes条目包含:Start = 0;类型= 1;标签= 7;组=" Pnp过滤器"。 普通设备堆栈是:
kd> !devstack \Device\HarddiskVolume2
!DevObj !DrvObj !DevExt ObjectName
fffffa8015bf43c0 \Driver\volsnap fffffa8015bf4510
fffffa8015bf0660 \Driver\rdyboost fffffa8015bf07b0
fffffa8015e3d260 \Driver\fvevol fffffa8015e3d3b0
fffffa8015ee9030 \Driver\xxxx_aes fffffa8015ee9180
fffffa8015be8480 \Driver\volmgr fffffa8015be85d0 HarddiskVolume2
它可以在XP x32下运行,甚至可以在Win8 x32 / x64和Win10 x64下运行。它不适用于使用Win7 x64的某些PC,例如安装另一个驱动程序后(可能是CryptoPro,但不是事实)。 系统在启动到BSOD时崩溃并出现错误:
BugCheck 7B, {fffff880009ae7e8, ffffffffc0000034, 0, 0}
Probably caused by : ntkrnlmp.exe ( nt!PnpBootDeviceWait+136 )
Followup: MachineOwner
括号中的Parameter1是UNICODE_STRING的地址,其名称为不可访问的引导设备:
kd> dS fffff880009ae7e8
fffff8a0`00370010 "\ArcName\multi(0)disk(0)rdisk(0)"
fffff8a0`00370050 "partition(2)"
它是驱动器的别名" c:\"或\ Device \ HarddiskVolume2已经加密,应该被驱动程序xxxx_aes挂钩。 呼叫堆栈中的最后一次呼叫指向" nt"模块功能,而不是任何驱动程序。
如果安装断点" bu nt!PnpInitializeBootStartDriver" (在调用堆栈中找到)在WinDbg中然后可以获得所有模块的列表 在引导序列中(如(WCHAR **)(@ rcx + 8)处的参数):
RAW, Wdf01000, msiadrv, vdrvroot, pci, partmgr, volmgr, volmgrx,
pciide, vmihc, mountmgr, vmbus, vsock, atapi, amdxata, FltMgr,
SymDS, FileInfo, SymEFA, CLFSSci, NTFS, KSecDD, CNGehci, pcw,
Fs_Rec, NDIS, KSecPkg, Tcpip, StorFlt,
xxxx_aes,
rdyboost, fvevol, volsnap, spldr, Mup, hwpolicy, disk.
加载disk.sys后出现BSOD。我看到DriverEntry调用了我的驱动程序,但没有看到PnP的AddDevice调用。 所以,司机真的没用了。
这个系统会发生什么?提前谢谢。
PS。我用" swiss-knife"制作了Linux live-CD。工具包括注册表编辑器" fred"和加密卷的FUSE驱动程序(读/写)。所以,我可以探索和编辑崩溃的系统..