VslpSmcTable

Тема в разделе "WASM.NT.KERNEL", создана пользователем galenkane, 2 авг 2026 в 14:51.

  1. galenkane

    galenkane Active Member

    Публикаций:
    4
    Регистрация:
    13 янв 2017
    Сообщения:
    502
    Вот результат реконструкции nt!VslpSmcTable с помощью нашего движка scan на живом ядре Windows 11
    ARM64 (Build 26100.1).
    ──────
    ### Результат сканирования nt!VslpSmcTable (0x100 байт)
    // Auto-generated (Bayesian Synthesizer)
    // Target: nt!VslpSmcTable (0xfffff802ac7637e0) | Scan Window: 0x100 bytes
    typedef struct _RECONSTRUCTED_nt_VslpSmcTable {
    /* +0x0000 */ uint8_t HeaderPadding[32]; // Все нули (Reserved / Uninitialized Header)
    /* +0x0020 */ uint64_t SmcControlFlags; // 0x4000000000d (Popcount=4, управляющие
    флаги)
    /* +0x0028 */ PVOID SmcDispatchTable; // 0xffffc686917bf9f0 (Указатель на таблицу
    вызовов)
    /* +0x0038 */ HANDLE SintVector; // 0x12 (Vector 18, привязка к SynIC
    preemption)
    /* +0x0048 */ PVOID SmcCookie; // 0x01dd224a80ac4d81 (64-битный Cookie
    безопасности)
    /* +0x0050 */ HANDLE AsidMask; // 0xffff (Маска 65535 ASID контекстов)
    /* +0x0058 */ PVOID KciAsidBitmapBuffer; // nt!KciAsidBitmapBuffer (Указатель на буфер
    KCI)
    /* +0x0060 */ uint64_t AsidBitmapSize; // 0x3b80 (15232 байта)
    /* +0x007c */ uint32_t Flags_007c; // 0x00000003
    /* +0x0080 */ HANDLE Vtl0AccessFlags; // 0x3 (Read/Write)
    /* +0x0088 */ HANDLE Vtl1ProtectionState; // 0x1 (VTL 1 Active)
    /* +0x0090 */ HANDLE KciIsolationEnabled; // 0x1 (HVCI isolation active)
    /* +0x0098 */ HANDLE SecureKernelState; // 0x1
    /* +0x00b0 */ HANDLE EnclaveState; // 0x1 (VBS Enclaves / VSM)
    /* +0x00c0 */ HANDLE SecurityPolicyFlags; // 0x1
    /* +0x00c8 */ HANDLE SmcReturnGuard; // 0x1
    /* +0x00d0 */ HANDLE AttestationState; // 0x1
    /* +0x00e8 */ HANDLE VtlSwitchAllowed; // 0x1
    /* +0x00f0 */ HANDLE KsrProtectionActive; // 0x1 (Kernel Software Resilience)
    /* +0x00f8 */ HANDLE MitigationState; // 0x1
    } RECONSTRUCTED_nt_VslpSmcTable, *PRECONSTRUCTED_nt_VslpSmcTable;
    ──────
    ### Главные выводы из структуры:
    1. +0x0058 — nt!KciAsidBitmapBuffer:
    напрямую зарезолвил PDB-символ nt!KciAsidBitmapBuffer. Он указывает на физический буфер размером
    15232 байта (0x3b80) прямо внутри контекста SMC-таблицы. Это подтверждает, что VBS использует этот буфер для
    отслеживания Address Space Identifier (ASID) изолированных страниц HVCI.
    2. +0x0050 — 0xFFFF:
    Маска ASID ровно в 65535 (16 бит) — полный размер диапазона ASID процессоров ARM64.
    3. Массив флагов 0x1 на смещениях +0x0088 — +0x00f8:
    Динамический шаг выделил целую серию битовых/булевых флагов VSM (Virtualization-Based
    Security), контролирующих активность изоляции HVCI, аттестацию TPM и прохождение VTL-переходов.

    Близко?
     
    Mikl___ нравится это.