> Windows Syscalls
ntoskrnl.exeT1562.001T1106

NtFreezeRegistry

Bloque temporairement toutes les écritures de registre du système, utilisé par VSS pour des snapshots cohérents.

Prototype

NTSTATUS NtFreezeRegistry(
  ULONG TimeOutInSeconds
);

Arguments

NameTypeDirDescription
TimeOutInSecondsULONGinNombre maximal de secondes pendant lesquelles le gel peut rester actif avant auto-dégel par le noyau.

IDs de syscalls par version de Windows

Version de WindowsID de syscallBuild
Win10 15070xDFwin10-1507
Win10 16070xE2win10-1607
Win10 17030xE5win10-1703
Win10 17090xE6win10-1709
Win10 18030xE7win10-1803
Win10 18090xE8win10-1809
Win10 19030xE9win10-1903
Win10 19090xE9win10-1909
Win10 20040xEEwin10-2004
Win10 20H20xEEwin10-20h2
Win10 21H10xEEwin10-21h1
Win10 21H20xEFwin10-21h2
Win10 22H20xEFwin10-22h2
Win11 21H20xF4win11-21h2
Win11 22H20xF5win11-22h2
Win11 23H20xF5win11-23h2
Win11 24H20xF7win11-24h2
Server 20160xE2winserver-2016
Server 20190xE8winserver-2019
Server 20220xF3winserver-2022
Server 20250xF7winserver-2025

Module noyau

ntoskrnl.exeNtFreezeRegistry

APIs liées

NtThawRegistryZwFreezeRegistryVSS IVssWriter::OnFreezeNtSaveKeyExRegSaveKeyExW

Stub du syscall

4C 8B D1            mov r10, rcx
B8 F7 00 00 00      mov eax, 0xF7      ; Win11 24H2 SSN
F6 04 25 08 03 FE 7F 01   test byte ptr [0x7FFE0308], 1
75 03               jne short +3
0F 05               syscall
C3                  ret
CD 2E               int 2Eh
C3                  ret

Notes non documentées

`NtFreezeRegistry` met en pause le configuration manager (`CmpRegistryFreeze`) : les nouveaux écrivains sont mis en attente et les flushs paresseux en cours sont terminés, afin que les hives sur disque soient cohérents pendant la durée du gel. L'unique argument est un timeout de sûreté — si l'appelant (ou ce qu'il lance) plante sans appeler `NtThawRegistry`, le noyau dégèle automatiquement après `TimeOutInSeconds` pour maintenir le système utilisable. Requiert `SeBackupPrivilege`. Le consommateur prévu est le writer Volume Shadow Copy Service (VSS) pour le registre (writer registre de `%SystemRoot%\System32\Vssapi.dll`), qui gèle le registre, prend un snapshot du volume des hives, puis dégèle.

Usage courant par les malwares

Signal faible dans la nature — aucune famille de malware commodity publiquement documentée n'appelle directement `NtFreezeRegistry`. Des scénarios d'abus relevant de la recherche existent : (1) déni de service bref contre les outils de monitoring qui sondent le registre (Sysmon, auto-protection AV), (2) gagner une course TOCTTOU contre un EDR qui scanne les clés Run périodiquement en gelant le registre au moment de l'écriture, (3) garantir qu'un payload de persistance registre est validé sur disque atomiquement avant la collecte de snapshot. Tous nécessitent `SeBackupPrivilege`, donc haute intégrité / admin, ce qui en fait une primitive post-exploitation, pas d'accès initial.

Opportunités de détection

L'invocation directe en dehors de VSSVC.exe / SystemWriter et d'une poignée de produits de sauvegarde (Veeam, Acronis, Veritas, Commvault) est extrêmement inhabituelle. ETW Microsoft-Windows-Kernel-Registry ne journalise pas nativement freeze/thaw, mais Microsoft-Windows-VolumeSnapshot-Driver et le journal application VSS (`Microsoft-Windows-VSS/Operational`) enregistrent l'orchestration. Sysmon Event 1 (création de processus) montrant un binaire inattendu détenant `SeBackupPrivilege` immédiatement suivi d'un gel registre est un indice fort. Coupler avec la surveillance d'un `NtThawRegistry` manquant dans la fenêtre de timeout.

Exemples de syscalls directs

cFreeze, flush, thaw — VSS-style

// Requires SeBackupPrivilege already enabled in the token.
NTSTATUS Snapshot(void) {
    NTSTATUS st = NtFreezeRegistry(60);     // auto-thaw safety: 60s
    if (!NT_SUCCESS(st)) return st;

    // ... take volume snapshot of the hive partition here ...

    return NtThawRegistry();
}

asmx64 direct stub

; NtFreezeRegistry direct syscall (Win11 24H2 SSN 0xF7)
NtFreezeRegistry PROC
    mov  r10, rcx           ; TimeOutInSeconds
    mov  eax, 0F7h
    syscall
    ret
NtFreezeRegistry ENDP

Mappings MITRE ATT&CK

Last verified: 2026-05-20