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 为 30403041。 下面是一些示例。

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

另请参阅

IAntimalwareProvider 接口示例

SignTool

AMSI 如何提供帮助