
Hipervisor de pesquisa para Windows x64 que utiliza Intel VT-x e hooks EPT por CPU para interceptar rotinas Nt/Ex/Mm, aplicar políticas de requisição e transmitir telemetria do kernel em tempo real.
Virtualização Intel VT-x, hooking EPT e telemetria de kernel interativa em C e assembly x64.
O Velum coloca um kernel Windows em execução na operação não-root do VMX e oferece aos pesquisadores uma forma interativa de observar chamadas nativas, inspecionar a atividade do kernel e aplicar políticas de requisição. Seus hooks EPT reproduzem as instruções originais em hardware, enquanto helpers no guest capturam metadados e um worker adiado entrega eventos legíveis ao console ou ao DebugView.
Use-o para acompanhar uma operação de arquivo desde os argumentos de entrada até uma decisão de política, comparar uma requisição permitida com uma negada, ou explorar a identidade do processador e as configurações de timing sem reiniciar o hypervisor. A implementação inclui inicialização e desligamento por CPU, transferência de estado CET, reinjeção de eventos e gerenciamento de cache de tradução.
Comece aqui | Guias de uso | Artigo técnico | Capturas de execução | Licença MIT
| Área | O que você pode fazer |
|---|---|
| Hooks EPT | Ativar e desativar hooks de entrada exportada com reprodução da instrução original e restauração via MTF |
| Telemetria de chamadas nativas | Inspecionar IDs de chamador, caminhos, metadados de processo e argumentos de entrada decodificados |
| Políticas de requisição | Negar requisições Nt correspondentes usando critérios de chamador, caminho e campos de entrada |
| Redução de acesso | Remover direitos explícitos solicitados para NtCreateFile, NtOpenFile, NtCreateSection, NtOpenProcess e NtDuplicateObject |
| Observação do kernel | Acompanhar alocação/liberação de pool, mapeamento de memória e entradas de cópia; inspecionar resumos de módulos/tags |
| Logging | Escolher saída para console ao vivo ou DebugView e configurar filtros por alvo |
| CPUID | Aplicar e consultar regras de identidade, depois restaurar os padrões |
| TSC | Aplicar um deslocamento fixo com sinal, com tradução de deadline e reset para zero |
| Ciclo de vida | Verificar cada CPU participante e devolver o Windows à execução nativa pelo fluxo de desligamento |
O catálogo de alvos contém 12 rotinas Nt e 12 rotinas Ex/Mm. O console resolve exports disponíveis e endereços de entrada compartilhados no kernel em execução. Consulte o índice de alvos para os campos de cada alvo e as ações suportadas.
O runtime é otimizado em torno de propriedade explícita de estado e um caminho de VM-exit enxuto. Uma camada de assembly x64 de aproximadamente 1.000 linhas cuida da preservação de registradores, transições VMX, transferência de estado CET e retorno nativo. Estruturas por CPU e reservas EPT pré-alocadas mantêm a alocação fora do caminho de saída; a formatação de eventos ocorre em um worker adiado em nível PASSIVE. Builds de release usam otimização do compilador, enquanto a interceptação seletiva evita interceptar operações comuns desnecessariamente.
Handlers raiz gerenciam transições de VMCS e EPT. Helpers elegíveis no guest capturam argumentos e avaliam políticas no contexto do Windows. A formatação ocorre depois, no worker de drenagem. Uma chamada permitida executa sua instrução de entrada original sob um mapeamento EPT temporário; o MTF devolve o controle para restaurar a sombra. Chamadas negadas usam um retorno real ao guest, de modo que a pilha normal e a shadow stack CET avançam juntas.
Para uma explicação aprofundada, leia Velum: preserving Windows execution across VMX transitions. O artigo percorre a inicialização do VMX, os controles do VMCS, os hooks EPT, CET, tratamento de NMI/eventos, telemetria e desligamento pelo código-fonte. Inclui evidências do WinDbg da investigação no Windows 10 e explica a correção do alias ExFreePool/ExFreePoolWithTag. As notas de engenharia, mais curtas, resumem essas decisões.
As capturas abaixo vêm de uma sessão física do Windows 11 build 26300.9711 em um Intel i7-12700F com 20 processadores lógicos. A sessão inclui 20/20 verificações de diagnóstico de CPU, negação de escrita em arquivo com escopo definido, redução de acesso, configuração de processador e desligamento verificado. Galeria completa e animações | Detalhes da sessão e hashes.
Habilite hooks, configure políticas, inspecione o estado da CPU e gerencie o runtime a partir de um único console.

Uma requisição NtWriteFile controlada de seis bytes com seu chamador, caminho e campos de entrada.

O acesso solicitado 0x12019F torna-se 0x120199 após a remoção da máscara 0x6. A abertura
é bem-sucedida, e a sonda confirma que o handle resultante não pode escrever. Este composto rotulado
combina a saída do monitor com o resultado da aplicação.



Baixar v0.1.0 para Windows x64 (ZIP) | Notas de versão e checksums SHA-256
O ZIP contém velum.sys e velum-console.exe. Siga o guia de configuração abaixo
antes de carregar o driver, ou compile a partir do código-fonte: