
Hypervisor di ricerca per Windows x64 che utilizza Intel VT-x e hook EPT per CPU per intercettare le routine Nt/Ex/Mm, applicare le policy delle richieste e trasmettere in streaming la telemetria del kernel in tempo reale.
Virtualizzazione Intel VT-x, hooking EPT e telemetria kernel interattiva in C e assembly x64.
Velum porta un kernel Windows in esecuzione in modalità non-root VMX e offre ai ricercatori un modo interattivo per osservare le chiamate native, ispezionare l'attività del kernel e applicare policy sulle richieste. I suoi hook EPT rieseguono le istruzioni originali in hardware, mentre helper nel guest catturano metadati e un worker differito consegna eventi leggibili alla console o a DebugView.
Usalo per seguire un'operazione su file dagli argomenti di input fino a una decisione di policy, confrontare una richiesta consentita con una negata, oppure esplorare le impostazioni di identità del processore e di timing senza riavviare l'hypervisor. L'implementazione include avvio e arresto per-CPU, trasferimento dello stato CET, reiniezione degli eventi e gestione della translation cache.
Per iniziare | Guide all'uso | Approfondimento tecnico | Catture di runtime | Licenza MIT
| Area | Cosa puoi fare |
|---|---|
| Hook EPT | Abilitare e disabilitare hook sulle voci esportate con riesecuzione delle istruzioni originali e ripristino tramite MTF |
| Telemetria delle chiamate native | Ispezionare ID del chiamante, percorsi, metadati del processo e argomenti di input decodificati |
| Policy sulle richieste | Negare richieste Nt corrispondenti usando criteri su chiamante, percorso e campi di input |
| Riduzione degli accessi | Rimuovere i diritti esplicitamente richiesti per NtCreateFile, NtOpenFile, NtCreateSection, NtOpenProcess e NtDuplicateObject |
| Osservazione del kernel | Seguire allocazione/rilascio del pool, mapping di memoria e input di copia; ispezionare i riepiloghi di moduli/tag |
| Logging | Scegliere l'output su console live o DebugView e configurare filtri per target |
| CPUID | Applicare e interrogare regole di identità, quindi ripristinare i valori predefiniti |
| TSC | Applicare un offset fisso con segno con traduzione delle scadenze e ripristino a zero |
| Ciclo di vita | Verificare ogni CPU partecipante e riportare Windows all'esecuzione nativa tramite la procedura di shutdown |
Il catalogo dei target contiene 12 routine Nt e 12 routine Ex/Mm. La console risolve gli export disponibili e gli indirizzi di ingresso condivisi sul kernel in esecuzione. Consulta l'indice dei target per i campi e le azioni supportate di ciascun target.
Il runtime è ottimizzato attorno a una gestione esplicita dello stato e a un percorso di VM-exit snello. Uno strato in assembly x64 di circa 1.000 righe gestisce la preservazione dei registri, le transizioni VMX, il trasferimento dello stato CET e il ritorno nativo. Le strutture per-CPU e le riserve EPT preallocate tengono le allocazioni fuori dal percorso di exit; la formattazione degli eventi avviene in un worker differito a livello PASSIVE. Le build Release usano l'ottimizzazione del compilatore, mentre l'intercettazione selettiva evita di intrappolare inutilmente le operazioni ordinarie.
I gestori root gestiscono le transizioni VMCS ed EPT. Gli helper idonei nel guest catturano gli argomenti e valutano le policy nel contesto di Windows. La formattazione avviene più tardi nel worker di drain. Una chiamata consentita esegue la sua istruzione di ingresso originale sotto un mapping EPT temporaneo; l'MTF restituisce il controllo per ripristinare la shadow. Le chiamate negate usano un vero ritorno nel guest, così lo stack normale e la shadow stack CET avanzano insieme.
Per una spiegazione approfondita, leggi Velum: preserving Windows execution across VMX transitions. L'articolo segue l'avvio VMX, i controlli VMCS, gli hook EPT, CET, la gestione di NMI/eventi, la telemetria e lo shutdown attraverso il codice sorgente. Include evidenze WinDbg tratte dall'indagine su Windows 10 e spiega la correzione dell'alias ExFreePool/ExFreePoolWithTag. Le più brevi note di ingegneria riassumono tali decisioni.
Le catture seguenti provengono da una sessione fisica su Windows 11 build 26300.9711 su un Intel i7-12700F con 20 processori logici. La sessione include 20/20 controlli diagnostici della CPU, negazione mirata della scrittura su file, riduzione degli accessi, configurazione del processore e arresto verificato. Galleria completa e animazioni | Dettagli della sessione e hash.
Abilita gli hook, configura i criteri, ispeziona lo stato della CPU e gestisci il runtime da un'unica console.

Una richiesta NtWriteFile controllata di sei byte con il relativo chiamante, percorso e campi di input.

L'accesso richiesto 0x12019F diventa 0x120199 dopo la rimozione della maschera 0x6. L'apertura
riesce e la sonda conferma che l'handle risultante non può scrivere. Questo composito etichettato
abbina l'output del monitor con il risultato dell'applicazione.



Scarica la v0.1.0 per Windows x64 (ZIP) | Note di rilascio e checksum SHA-256
Lo ZIP contiene velum.sys e velum-console.exe. Segui la guida di configurazione riportata di seguito
prima di caricare il driver, oppure compila dai sorgenti: