Interface IAntimalwareProvider (amsi.h)

Représente le fournisseur du produit anti-programme malveillant. Pour obtenir un exemple de code, consultez l’exemple d’interface IAntimalwareProvider.

L’interface IAntimalwareProvider hérite de l’interface IUnknown.

Héritage

L’interface IAntimalwareProvider hérite de l’interface IUnknown.

Méthodes

L’interface IAntimalwareProvider possède ces méthodes.

 
IAntimalwareProvider ::CloseSession

Ferme la session. (IAntimalwareProvider.CloseSession)
IAntimalwareProvider ::D isplayName

Nom du fournisseur anti-programme malveillant à afficher.
IAntimalwareProvider ::Scan

Analyser un flux de contenu. (IAntimalwareProvider.Scan)

Remarques

Depuis Windows 10 version 1903, Windows a ajouté un moyen d’activer les vérifications de signature Authenticode pour les fournisseurs. La fonctionnalité est désactivée par défaut, pour les processus 32 bits et 64 bits. Si vous créez un fournisseur à des fins de test, vous pouvez activer ou désactiver les vérifications des signes en définissant la valeur de Registre Windows suivante de manière appropriée. La valeur est un DWORD.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

Valeur Comportement
0x1 Le case activée de signature est désactivé. Il s'agit du comportement par défaut. Vous pouvez également utiliser cette valeur, temporairement, lors du test.
0x2 Le case activée pour la signature Authenticode est activé.

La suppression de la valeur du Registre se comporte comme si la valeur 0x1 était présente.

Notes

En tant que fournisseur, vous devez utiliser le /ac commutateur (avec SignTool) pour effectuer une signature croisée avec un certificat Authenticode. Une fois que vous avez signé votre fichier binaire, vous pouvez le vérifier à l’aide de SignTool et de l’option /kp . Si SignTool ne retourne aucune erreur, votre binaire est correctement signé.

Important

Même si la valeur du Registre Windows n’est pas protégée par le système d’exploitation, le fournisseur antivirus de votre ordinateur peut protéger la valeur, ce qui la rend protégée en écriture.

Pour case activée si votre fournisseur est en train de charger ou non, vous pouvez afficher les événements d’intégrité du code. Veillez à activer la journalisation détaillée des événements de diagnostic d’intégrité du code. Les ID d’événement à rechercher sont 3040 et 3041. Voici quelques exemples.

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>

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 (applications de bureau uniquement)
Serveur minimal pris en charge Windows Server 2016 (applications de bureau uniquement)
Plateforme cible Windows
En-tête amsi.h

Voir aussi

Exemple d’interface IAntimalwareProvider

SignTool

Aide fournie par AMSI