IAntimalwareProvider 接口 (amsi.h)
表示反恶意软件产品的提供商。 有关代码示例,请参阅 IAntimalwareProvider 接口示例。
IAntimalwareProvider 接口继承自 IUnknown 接口。
继承
IAntimalwareProvider 接口继承自 IUnknown 接口。
方法
IAntimalwareProvider 接口具有这些方法。
IAntimalwareProvider::CloseSession 关闭会话。 (IAntimalwareProvider.CloseSession) |
IAntimalwareProvider::D isplayName 要显示的反恶意软件提供程序的名称。 |
IAntimalwareProvider::Scan 扫描内容流。 (IAntimalwareProvider.Scan) |
注解
自Windows 10版本 1903 起,Windows 添加了一种启用提供程序的 Authenticode 签名检查的方法。 默认情况下,对于 32 位和 64 位进程,此功能处于禁用状态。 如果要创建用于测试的提供程序,则可以通过适当设置以下 Windows 注册表值来启用或禁用签名检查。 值为 DWORD。
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits
值 | 行为 |
---|---|
0x1 | 签名检查处于禁用状态。 这是默认行为。 还可以在测试时暂时使用此值。 |
0x2 | 已启用验证码签名检查。 |
完全删除注册表值的行为就像存在0x1值一样。
注意
作为提供程序,必须将 /ac
开关 (与 SignTool) 配合使用,才能使用 Authenticode 证书进行交叉签名。 对二进制文件进行签名后,可以使用 SignTool 和 /kp
选项对其进行验证。 如果 SignTool 未返回错误,则表示二进制文件已正确签名。
重要
即使 Windows 注册表值不受操作系统保护,计算机的防病毒提供程序也可能保护该值,从而使它成为写保护值。
若要检查提供程序是否正在加载,可以查看代码完整性事件。 请务必 启用代码完整性诊断事件的详细日志记录。 要查找的事件 ID 为 3040 和 3041。 下面是一些示例。
Log Name: Microsoft-Windows-CodeIntegrity/Verbose
Source: Microsoft-Windows-CodeIntegrity
Date: M/DD/YYYY H:MM:SS PM
Event ID: 3040
Task Category: (14)
Level: Verbose
Keywords:
User: [DOMAIN_NAME]\Administrator
Computer: [COMPUTER_NAME]
Description:
Code Integrity started retrieving the cached data of [PATH_AND_FILENAME] file.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
<EventID>3040</EventID>
<Version>0</Version>
<Level>5</Level>
<Task>14</Task>
<Opcode>1</Opcode>
<Keywords>0x4000000000000000</Keywords>
<TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875954700Z" />
<EventRecordID>7</EventRecordID>
<Correlation />
<Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
<Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
<Computer>[COMPUTER_NAME]</Computer>
<Security UserID="[USER_SID]" />
</System>
<EventData>
<Data Name="FileNameLength">40</Data>
<Data Name="FileNameBuffer">[PATH_AND_FILENAME]</Data>
</EventData>
</Event>
Log Name: Microsoft-Windows-CodeIntegrity/Verbose
Source: Microsoft-Windows-CodeIntegrity
Date: M/DD/YYYY H:MM:SS PM
Event ID: 3041
Task Category: (14)
Level: Verbose
Keywords:
User: [DOMAIN_NAME]\Administrator
Computer: [COMPUTER_NAME]
Description:
Code Integrity completed retrieval of file cache. Status 0xC0000225.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="Microsoft-Windows-CodeIntegrity" Guid="{4ee76bd8-3cf4-44a0-a0ac-3937643e37a3}" />
<EventID>3041</EventID>
<Version>2</Version>
<Level>5</Level>
<Task>14</Task>
<Opcode>2</Opcode>
<Keywords>0x4000000000000000</Keywords>
<TimeCreated SystemTime="YYYY-MM-DDT02:26:48.875964700Z" />
<EventRecordID>8</EventRecordID>
<Correlation />
<Execution ProcessID="4972" ThreadID="7752" ProcessorID="1" KernelTime="14" UserTime="2" />
<Channel>Microsoft-Windows-CodeIntegrity/Verbose</Channel>
<Computer>[COMPUTER_NAME]</Computer>
<Security UserID="[USER_SID]" />
</System>
<EventData>
<Data Name="Status">0xc0000225</Data>
<Data Name="CachedFlags">0x0</Data>
<Data Name="CacheSource">0</Data>
<Data Name="CachedPolicy">0</Data>
</EventData>
</Event>
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2016 [仅限桌面应用] |
目标平台 | Windows |
标头 | amsi.h |