Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die GetRuntimeAttestationReport-API ermöglicht es einem VTL0-Benutzermodusprozess, einen signierten Laufzeitnachweisbericht aus dem sicheren Kernel abzurufen. Dieser Bericht enthält eine Liste der geladenen Treiber und Codeintegritätsinformationen, die für die Überprüfung der Systemintegrität und das Erzwingen von Anti-Cheat-Richtlinien in Spielen und sicherheitsrelevanten Anwendungen unerlässlich sind.
Syntax
BOOL GetRuntimeAttestationReport(
UCHAR *Nonce,
UINT16 PackageVersion,
UINT64 ReportTypesBitmap,
PVOID ReportBuffer,
PUINT32 ReportBufferSize
);
Die Parameter
Nonce
Zeigen Sie auf einen 32-Byte-Puffer, der eine Nonce enthält, um Replay-Angriffe zu verhindern. Geben Sie an NULL , ob nur die Ausgabegröße berechnet wird.
PackageVersion
Gibt die Paketversion des Laufzeitberichts an. Wird für die neueste Version verwendet RUNTIME_REPORT_PACKAGE_VERSION_CURRENT .
ReportTypesBitmap
Bitmap, die die Typen der zu generierenden Berichte angibt. Verwenden Sie das RUNTIME_REPORT_TYPE_TO_MASK Makro, um Enumerationswerte in Bitmapmasken zu konvertieren.
-
RuntimeReportTypeDriver= 0 (Treiberbericht) -
RuntimeReportTypeCodeIntegrity= 1 (Codeintegritätsbericht) -
RUNTIME_REPORT_TYPE_MASK_ALL(alle unterstützten Berichte)
ReportBuffer
Zeigen Sie auf einen Puffer, in dem der signierte Bericht platziert wird. Geben Sie NULL an, dass die erforderliche Ausgabegröße nur berechnet werden soll.
ReportBufferSize
Zeigen Sie auf eine Variable, die die Größe des Puffers enthält. Aktualisiert mit der tatsächlichen Anzahl geschriebener Bytes oder, falls ReportBuffer vorhanden NULL, mit der erforderlichen Größe.
Rückgabewert
- Gibt WAHR bei Erfolg zurück.
- Gibt FALSCH bei Fehler zurück; verwenden Sie GetLastError() für erweiterte Fehlerinformationen.
Bemerkungen
Die API stellt einen signierten Laufzeitnachweisbericht bereit, der vom Back-End überprüft werden kann.
Rufen Sie die API während der Laufzeit regelmäßig auf, um up-to-Datumsnachweis beizubehalten. Berechnen Sie zuerst die erforderliche Puffergröße, indem Sie NULL für ReportBuffer übergeben, dann den Puffer zuordnen und erneut aufrufen, um den Bericht abzurufen.
Der Bericht kann nur generiert werden, wenn HVCI (Hypervisor-Protected Codeintegrität) aktiviert ist.
Der zurückgegebene Puffer ist als "Laufzeitberichtspaket" organisiert, das Folgendes umfasst:
- RUNTIME_REPORT_PACKAGE_HEADER
- 32-Byte-Nonce
- Mindestens ein RUNTIME_REPORT_DIGEST_HEADER (eins pro Berichtstyp)
- Signatur-BLOB
- Mindestens ein authentifizierter Laufzeitbericht (jeweils mit einem RUNTIME_REPORT_HEADER)
Sicherheitsanforderungen
- TPM 2.0, Sicherer Start, VBS, HVCI und IOMMU müssen aktiviert sein.
- Testsignatur- und Debugkennzeichnungen müssen deaktiviert sein.
Der Nachweisbericht ist nur gültig, wenn diese Sicherheitsfeatures aktiv sind.
Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Fenster |
| Header | sysinfoapi.h (include Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |