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 | 已啟用 Authenticode 簽署的檢查。 |
刪除登錄值的行為就如同值0x1存在一樣。
注意
身為提供者,您必須使用 /ac
參數 (搭配 SignTool) ,以 Authenticode 憑證交叉簽署。 簽署二進位檔之後,您就可以使用 SignTool 和 /kp
選項進行驗證。 如果 SignTool 沒有傳回錯誤,則您的二進位檔已正確簽署。
重要
即使 Windows 登錄值不受作業系統保護,您的電腦防病毒軟體提供者仍可保護該值,因此會使其受到寫入保護。
若要檢查提供者是否正在載入,您可以 檢視程式代碼完整性事件。 請務必 啟用程式代碼完整性診斷事件的詳細信息記錄。 要尋找的事件標識碼為 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 |