Interfaccia IAntimalwareProvider (amsi.h)

Rappresenta il provider del prodotto antimalware. Per un esempio di codice, vedere l'esempio di interfaccia IAntimalwareProvider.

L'interfaccia IAntimalwareProvider eredita dall'interfaccia IUnknown.

Ereditarietà

L'interfaccia IAntimalwareProvider eredita dall'interfaccia IUnknown.

Metodi

L'interfaccia IAntimalwareProvider include questi metodi.

 
IAntimalwareProvider::CloseSession

Chiude la sessione. (IAntimalwareProvider.CloseSession)
IAntimalwareProvider::D isplayName

Nome del provider antimalware da visualizzare.
IAntimalwareProvider::Scan

Analizzare un flusso di contenuto. (IAntimalwareProvider.Scan)

Commenti

A partire da Windows 10, versione 1903, Windows ha aggiunto un modo per abilitare i controlli di firma Authenticode per i provider. La funzionalità è disabilitata per impostazione predefinita, sia per i processi a 32 bit che a 64 bit. Se si crea un provider a scopo di test, è possibile abilitare o disabilitare i controlli di firma impostando il valore del Registro di sistema di Windows seguente in modo appropriato. Il valore è un DWORD.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

valore Comportamento
0x1 Il controllo di firma è disabilitato. Questo è il comportamento predefinito. È anche possibile usare questo valore, temporaneamente, durante il test.
0x2 Il controllo per la firma Authenticode è abilitato.

L'eliminazione del valore del Registro di sistema si comporta completamente come se il valore 0x1 fosse presente.

Nota

Come provider, è necessario usare l'opzione /ac (con SignTool) per firmare con un certificato Authenticode. Dopo aver firmato il file binario, è quindi possibile verificarlo usando SignTool e l'opzione /kp . Se SignTool non restituisce alcun errore, il file binario viene firmato correttamente.

Importante

Anche se il valore del Registro di sistema di Windows non è protetto dal sistema operativo, il provider antivirus del computer potrebbe proteggere il valore, rendendolo quindi protetto da scrittura.

Per verificare se il provider è in fase di caricamento, è possibile visualizzare gli eventi di integrità del codice. Assicurarsi di abilitare la registrazione dettagliata degli eventi di diagnostica dell'integrità del codice. Gli ID evento da cercare sono 3040 e 3041. Di seguito sono riportati alcuni esempi.

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>

Requisiti

Requisito Valore
Client minimo supportato Windows 10 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione amsi.h

Vedi anche

Esempio di interfaccia IAntimalwareProvider

SignTool

Come AMSI aiuta