Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
GetRuntimeAttestationReport API memungkinkan proses mode pengguna VTL0 untuk mengambil laporan pengesahan runtime yang ditandatangani dari Kernel Aman. Laporan ini menyediakan daftar driver yang dimuat dan informasi integritas kode, yang penting untuk memvalidasi integritas sistem dan memberlakukan kebijakan anti-cheat dalam aplikasi game dan sensitif terhadap keamanan.
Syntax
BOOL GetRuntimeAttestationReport(
UCHAR *Nonce,
UINT16 PackageVersion,
UINT64 ReportTypesBitmap,
PVOID ReportBuffer,
PUINT32 ReportBufferSize
);
Parameter-parameternya
Nonce
Arahkan ke buffer 32 byte yang berisi nonce untuk mencegah serangan pemutaran ulang. Tentukan NULL apakah hanya menghitung ukuran output.
PackageVersion
Menentukan versi paket laporan runtime. Gunakan RUNTIME_REPORT_PACKAGE_VERSION_CURRENT untuk versi terbaru.
ReportTypesBitmap
Bitmap menentukan jenis laporan yang akan dihasilkan.
RUNTIME_REPORT_TYPE_TO_MASK Gunakan makro untuk mengonversi nilai enum menjadi mask bitmap.
-
RuntimeReportTypeDriver= 0 (laporan driver) -
RuntimeReportTypeCodeIntegrity= 1 (laporan integritas kode) -
RUNTIME_REPORT_TYPE_MASK_ALL(semua laporan yang didukung)
ReportBuffer
Penunjuk ke buffer tempat laporan yang ditandatangani akan ditempatkan. Tentukan NULL untuk menghitung ukuran output yang diperlukan saja.
ReportBufferSize
Penunjuk ke variabel yang berisi ukuran buffer. Diperbarui dengan jumlah byte aktual yang ditulis atau, jika ReportBuffer adalah NULL, dengan ukuran yang diperlukan.
Mengembalikan nilai
- Mengembalikan TRUE pada keberhasilan.
- Mengembalikan FALSE pada kesalahan; gunakan GetLastError() untuk informasi kesalahan yang diperluas.
Komentar
API menyediakan laporan pengesahan runtime yang ditandatangani, yang dapat divalidasi oleh backend.
Panggil API secara berkala selama runtime untuk mempertahankan pengesahan up-to-date. Selalu hitung ukuran buffer yang diperlukan terlebih dahulu dengan meneruskan NULL untuk ReportBuffer, lalu alokasikan buffer dan panggil lagi untuk mengambil laporan.
Laporan hanya dapat dihasilkan ketika HVCI (Hypervisor-Protected Code Integrity) diaktifkan.
Buffer yang dikembalikan diatur sebagai "Paket Laporan Runtime," yang mencakup:
- RUNTIME_REPORT_PACKAGE_HEADER
- Nonce 32 byte
- Satu atau beberapa RUNTIME_REPORT_DIGEST_HEADER (satu per jenis laporan)
- Blob tanda tangan
- Satu atau beberapa laporan runtime terautentikasi (masing-masing dengan RUNTIME_REPORT_HEADER)
Persyaratan Keamanan
- TPM 2.0, Boot Aman, VBS, HVCI, dan IOMMU harus diaktifkan.
- Bendera penandatanganan pengujian dan debug harus nonaktif.
Laporan pengesahan hanya valid jika fitur keamanan ini aktif.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Platform Target | Windows |
| Header | sysinfoapi.h (termasuk Windows.h) |
| Library | Kernel32.lib |
| DLL | Kernel32.dll |