IAntimalwareProvider-Schnittstelle (amsi.h)

Stellt den Anbieter des Antischadsoftware-Produkts dar. Ein Codebeispiel finden Sie im IAntimalwareProvider-Schnittstellenbeispiel.

Die IAntimalwareProvider-Schnittstelle erbt von der IUnknown-Schnittstelle.

Vererbung

Die IAntimalwareProvider-Schnittstelle erbt von der IUnknown-Schnittstelle.

Methoden

Die IAntimalwareProvider-Schnittstelle verfügt über diese Methoden.

 
IAntimalwareProvider::CloseSession

Schließt die Sitzung. (IAntimalwareProvider.CloseSession)
IAntimalwareProvider::D isplayName

Der Name des anzuzeigenden Antischadsoftwareanbieters.
IAntimalwareProvider::Scan

Scannen sie einen Inhaltsdatenstrom. (IAntimalwareProvider.Scan)

Hinweise

Ab Windows 10 Version 1903 hat Windows eine Möglichkeit zum Aktivieren von Authenticode-Signaturprüfungen für Anbieter hinzugefügt. Das Feature ist standardmäßig deaktiviert, sowohl für 32-Bit- als auch für 64-Bit-Prozesse. Wenn Sie einen Anbieter zu Testzwecken erstellen, können Sie die Signierungsüberprüfungen aktivieren oder deaktivieren, indem Sie den folgenden Windows-Registrierungswert entsprechend festlegen. Der Wert ist ein DWORD.The value is a DWORD.

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits

Wert Verhalten
0x1 Die Signaturprüfung ist deaktiviert. Dies ist das Standardverhalten. Sie können diesen Wert auch vorübergehend während des Testens verwenden.
0x2 Die Überprüfung auf Authenticode-Signatur ist aktiviert.

Das Löschen des Registrierungswerts verhält sich ganz so, als ob der Wert 0x1 vorhanden wäre.

Hinweis

Als Anbieter müssen Sie den /ac Schalter (mit dem SignTool) zum Kreuz signieren mit einem Authenticode-Zertifikat verwenden. Nachdem Sie Ihre Binärdatei signiert haben, können Sie sie mit dem SignTool und der /kp Option überprüfen. Wenn das SignTool keinen Fehler zurückgibt, ist Ihre Binärdatei ordnungsgemäß signiert.

Wichtig

Obwohl der Wert der Windows-Registrierung nicht durch das Betriebssystem geschützt ist, kann der Antivirenanbieter Ihres Computers den Wert schützen, sodass er schreibgeschützt ist.

Um zu überprüfen, ob Ihr Anbieter geladen wird, können Sie Codeintegritätsereignisse anzeigen. Stellen Sie sicher, dass Sie die ausführliche Protokollierung von Diagnoseereignissen für die Codeintegrität aktivieren. Die zu suchenden Ereignis-IDs sind 3040 und 3041. Hier sehen Sie einige Beispiele:

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>

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2016 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile amsi.h

Weitere Informationen

Beispiel für die IAntimalwareProvider-Schnittstelle

SignTool

So hilft AMSI