看到一个 api:
EnumDeviceDrivers
突然想到:
可以通过枚举当前系统加载的驱动文件确定加密锁驱动是否正确安装
uses
PSAPI;
//设计: Lsuper 2006.07.26
//功能: 枚举所有加载的驱动
//参数:
procedure FillDrivers(AList: TStrings);
var
I, nCount: LongWord;
cList: array of Pointer;
strData: string;
begin
if not EnumDeviceDrivers(nil, 0, nCount) then
RaiseLastOSError;
SetLength(cList, nCount);
if not EnumDeviceDrivers(PPointer(cList), Length(cList), nCount) then
Exit;
for I := Low(cList) to High(cList) do
begin
SetLength(strData, MAX_PATH);
if GetDeviceDriverFileName{GetDeviceDriverBaseName}(cList[I], PChar(strData), MAX_PATH) > 0 then
AList.AddObject(strData, TObject(cList[I]));
end;
end;
一个小发现:
我的机器上竟然加载了 Tencent 目录下名为 nplcrypt.sys 的驱动(就是输入密码的软键盘)
tencent 为了防止密码的非法盗取竟然把程序做到驱动级(防止一般地 api hook 之类的),可谓极致!
不过 3721 之类的不也是这么做的么?