Windows 7 和 Windows Server 2008 R2 中的AppInit_DLLs

平台

客户端 - Windows 7
服务器 - Windows Server 2008 R2

功能影响

严重性 - 低
频率 - 低

说明

AppInit_DLLs是一种机制,允许将 DLL 的任意列表加载到系统上的每个用户模式进程中。 Microsoft 正在修改 Windows 7 和 Windows Server 2008 R2 中的 AppInit DLL 工具,以添加新的代码签名要求。 这将有助于提高系统可靠性和性能,以及提高软件来源的可见性。

配置

存储在注册表中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion \Windows 键下的值确定AppInit_DLLs基础结构的行为。 下表描述了这些注册表值:

说明 示例值
LoadAppInit_DLLs (REG_DWORD) ${REMOVE}$
全局启用或禁用 AppInit_DLLs.${REMOVE}$
0x0 – 禁用AppInit_DLLs。
0x1 - 已启用AppInit_DLLs。
AppInit_DLLs (REG_SZ) 要加载的 DLL 的空格或逗号分隔列表。 应使用短名称指定 DLL 的完整路径。 C:\PROGRA~1\WID288~1\MICROS~1.DLL
RequireSignedAppInit_DLLs (REG_DWORD) ${REMOVE}$
仅加载代码签名的 DLL。${REMOVE}$
0x0 - 加载任何 DLL。
0x1 – 仅加载代码签名 DLL。

 

Windows 7

AppInit_DLLs基础结构加载的所有 DLL 都应进行代码签名。 为了应用程序兼容性,Windows 7 操作系统将加载所有 AppInit DLL。 但是,Microsoft 建议所有应用程序开发人员对其 DLL 进行代码签名,以帮助提高 Windows 的可靠性,并准备在 Windows 的未来版本中实施代码签名。 RequireSignedAppInit_DLLs注册表项控制此行为,并且 Windows 7 上的值默认设置为 0。

Windows Server 2008 R2

由AppInit_DLLs基础结构加载的所有 DLL 都必须经过代码签名。 RequireSignedAppInit_DLLs注册表项控制此行为,并且 Windows Server 2008 R2 上的值默认设置为 1。

Windows 7 和 Windows Server 2008 R2 中的 AppInit DLL