Interfaz IAntimalwareProvider (amsi.h)

Representa el proveedor del producto antimalware. Para obtener un ejemplo de código, consulte el ejemplo de interfaz IAntimalwareProvider.

La interfaz IAntimalwareProvider hereda de la interfaz IUnknown.

Herencia

La interfaz IAntimalwareProvider hereda de la interfaz IUnknown.

Métodos

La interfaz IAntimalwareProvider tiene estos métodos.

 
IAntimalwareProvider::CloseSession

Cierra la sesión. (IAntimalwareProvider.CloseSession)
IAntimalwareProvider::D isplayName

Nombre del proveedor de antimalware que se va a mostrar.
IAntimalwareProvider::Scan

Examine una secuencia de contenido. (IAntimalwareProvider.Scan)

Comentarios

A partir de Windows 10, versión 1903, Windows ha agregado una manera de habilitar las comprobaciones de firma de Authenticode para proveedores. La característica está deshabilitada de forma predeterminada, tanto para procesos de 32 bits como de 64 bits. Si va a crear un proveedor con fines de prueba, puede habilitar o deshabilitar las comprobaciones de firma estableciendo el siguiente valor del Registro de Windows correctamente. El valor es un DWORD.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

Valor Comportamiento
0x1 La comprobación de firma está deshabilitada. Este es el comportamiento predeterminado. También puede usar este valor, temporalmente, durante las pruebas.
0x2 La comprobación de la firma authenticode está habilitada.

La eliminación del valor del Registro se comporta por completo como si el valor 0x1 estuviera presente.

Nota

Como proveedor, debe usar el /ac modificador (con SignTool) para realizar un inicio de sesión cruzado con un certificado Authenticode. Una vez que haya firmado el archivo binario, puede comprobarlo mediante SignTool y la /kp opción . Si SignTool no devuelve ningún error, el archivo binario se firma correctamente.

Importante

Aunque el valor del Registro de Windows no está protegido por el sistema operativo, el proveedor antivirus del equipo podría proteger el valor, lo que lo convierte en protegido por escritura.

Para comprobar si el proveedor se está cargando o no, puede ver eventos de integridad de código. Asegúrese de habilitar el registro detallado de eventos de diagnóstico de integridad de código. Los identificadores de evento que se van a buscar son 3040 y 3041. Estos son algunos ejemplos.

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>

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2016 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado amsi.h

Consulte también

Ejemplo de interfaz IAntimalwareProvider

SignTool

Cómo ayuda AMSI