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 |