在NT系列Windows操作系统中,恶意软件可以通过关联Winlogon特定的事件来使自身被启动,如Lock,Logoff,Logon,Shutdown,StartScreenSaver,,StartShell,Startup,StopScreenSaver,Unlock等,这甚至能够使得恶意软件在安全模式下被加载。WinLogon的通知事件在注册表的位置是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
当WinLogon.exe产生一个事件通知的时候,Windows会检查注册表里面指定的DLL并调用DLL指定的导出函数。示例(当屏幕锁定时调用WinLogonDemo.dll导出的LockFun函数):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\Test]
@=""
"DLLName"="WinLogonDemo.dll"
"Asynchronous"=dword:00000001
"Impersonate"=dword:00000001
"Lock"="LockFun"
从Windows Vista开始,这项特性被取消了。可以通过注册一个服务来监听相应的事件(部分事件不支持),参见Using Service Control Manager (SCM) Notifications
Windows NT WinLogon Notify