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 |