文件后缀中的 ni 代表 Native Image(原生映像),即该 DLL 由 NGen 编译器在系统部署阶段预先编译为本机机器码,用于替代运行时 JIT 编译,从而缩短宿主进程的启动延迟。
Microsoft.ApplicationId.Framework.ni.dll 是 .NET Framework 托管程序集 Microsoft.ApplicationId.Framework.dll 的预编译本机副本,通常位于 %windir%\assembly\NativeImages_v4.0.30319_64\Microsoft.Appl...\ 目录下。它由 Windows 应用程序标识服务(Application Identity Service,AppIdSvc)加载,功能语义与 IL 版本完全一致,但执行路径更短。
1. 计算应用程序标识:解析目标 PE 文件的 Authenticode 签名与内容摘要,生成“文件哈希标识”(SHA-256)与“发布者标识”(证书链、主体名、序列号),作为判断程序身份的权威依据。
2. 支撑安全策略匹配:为 AppLocker、软件限制策略(SRP)、Windows Defender 应用程序控制(WDAC)提供哈希规则与发布者规则的比对数据。
3. 提供对外查询接口:通过 AppIdSvc 响应系统组件及 PowerShell AppLocker 模块(如 Get-AppLockerFileInformation)的标识查询请求。
4. 标识缓存与复用:缓存已解析的文件哈希与证书信息,避免对大型二进制文件重复运算。
5. 异常签名处理:对未签名文件、证书过期、根证书不受信任等情形给出降级判定结果。
修复思路:优先执行 sfc /scannow 与 DISM /Online /Cleanup-Image /RestoreHealth 校验系统组件;若无效,可重装对应版本的 .NET Framework,或使用 ngen update 重新生成本机映像。