IAntimalwareProvider-Schnittstelle (amsi.h)
Stellt den Anbieter des Antischadsoftwareprodukts dar. Ein Codebeispiel finden Sie im IAntimalwareProvider-Schnittstellenbeispiel.
Die IAntimalwareProvider Schnittstelle erbt von der IUnknown-Schnittstelle.
Erbschaft
Die IAntimalwareProvider Schnittstelle erbt von der IUnknown-Schnittstelle.
Methodik
Die IAntimalwareProvider Schnittstelle hat diese Methoden.
IAntimalwareProvider::CloseSession Schließt die Sitzung. (IAntimalwareProvider.CloseSession) |
IAntimalwareProvider::D isplayName Der Name des anzuzeigenden Antischadsoftwareanbieters. |
IAntimalwareProvider::Scan Scannen sie einen Inhaltsstrom. (IAntimalwareProvider.Scan) |
Bemerkungen
Ab Windows 10, Version 1903, hat Windows eine Möglichkeit hinzugefügt, die Authenticode-Signaturüberprüfungen für Anbieter zu aktivieren. Das Feature ist standardmäßig für 32-Bit- und 64-Bit-Prozesse deaktiviert. Wenn Sie einen Anbieter zu Testzwecken erstellen, können Sie Die Signierprüfungen aktivieren oder deaktivieren, indem Sie den folgenden Windows-Registrierungswert entsprechend festlegen. Der Wert ist ein DWORD.
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AMSI\FeatureBits
Wert | Benehmen |
---|---|
0x1 | Die Signaturprüfung ist deaktiviert. Dies ist das Standardverhalten. Sie können diesen Wert auch vorübergehend während des Tests verwenden. |
0x2 | Die Überprüfung auf die Authenticode-Signatur ist aktiviert. |
Das Löschen des Registrierungswerts verhält sich insgesamt so, als ob der Wert 0x1 vorhanden wäre.
Anmerkung
Als Anbieter müssen Sie den /ac
Switch (mit dem SignTool-) verwenden, um die Signatur mit einem Authenticode-Zertifikat zu kreuzen. Nachdem Sie die Binärdatei signiert haben, können Sie sie mit dem SignTool und der Option /kp
überprüfen. Wenn das SignTool keinen Fehler zurückgibt, wird die Binärdatei ordnungsgemäß signiert.
Wichtig
Obwohl der Windows-Registrierungswert nicht vom Betriebssystem geschützt ist, kann der Antivirenanbieter Ihres Computers den Wert schützen, wodurch er schreibgeschützt wird.
Um zu überprüfen, ob Ihr Anbieter geladen wird, können Sie Codeintegritätsereignisseanzeigen. Achten Sie darauf, ausführliche Protokollierung von Codeintegritätsdiagnoseereignissenaktivieren. Die zu suchenden Ereignis-IDs sind 3040 und 3041. Hier sind 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 |
---|---|
mindestens unterstützte Client- | Windows 10 [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows Server 2016 [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | amsi.h |