Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
SimpleVisor — Hipervisor mínimo Intel VT-x para Windows e UEFI que virtualiza um host ativo para introspecção, com suporte a hyperjacking dinâmico, unhyperjacking, EPT e VPID. | Kitploit
Ferramentas/GitHubGitHub/ionescu007/simplevisor
Engenharia ReversaVirtualização para SegurançaAnálise de MalwareSegurança de HardwareAnálise de BináriosPapers e PesquisaAprendizado e Educação
GitHubionescu007/simplevisor

SimpleVisor

Hipervisor mínimo Intel VT-x para Windows e UEFI que virtualiza um host ativo para introspecção, com suporte a hyperjacking dinâmico, unhyperjacking, EPT e VPID.

Ver Repositório
2.0k286há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Site
Compartilhar

SimpleVisor

SimpleVisor é um hypervisor simples, portátil e específico para Intel x64/EM64T VT-x com dois objetivos específicos: usar a menor quantidade de código assembly (10 linhas) e ter a menor quantidade de código relacionado a VMX para suportar hyperjacking e unhyperjacking dinâmicos (isto é, virtualizar o estado do host de dentro do host), ao mesmo tempo que suporta recursos avançados como EPT e VPID. Atualmente, ele roda tanto no Windows quanto em ambientes UEFI.

Introdução

Você sempre teve curiosidade sobre como construir um hypervisor? A documentação da Intel (as muitas centenas de páginas) já te desanimou? Os exemplos que você encontrou online só deixaram as coisas mais confusas, ou exigiram semanas lendo dezenas de milhares de linhas de código? Se sim, o SimpleVisor pode ser o projeto para você.

Sem contar os comentários exaustivos que explicam cada linha de código, e as idiossincrasias específicas do Windows ou relacionadas à Intel, o SimpleVisor tem cerca de 500 linhas de código C e 10 linhas de código assembly x64, tudo isso contendo a capacidade de rodar em todas as versões recentes do Windows de 64 bits, e suportando carregamento/descarregamento dinâmico em tempo de execução.

Além disso, o SimpleVisor utiliza uma biblioteca de sistema operacional leve para funcionalidades específicas do Windows, separando as partes do hypervisor das partes específicas do Windows. Aproveitando esse design portátil, uma versão UEFI do SimpleVisor também está disponível agora. Note, no entanto, que ela não tem suporte robusto para ambientes MP devido a problemas com UEFI, e que carregar um sistema operacional eventualmente resultará em um crash, pois o SO atingirá caminhos de código não implementados devido à sua reconfiguração dos recursos do processador. Virtualizar todo o boot do sistema operacional a partir do UEFI está além do escopo do projeto.

O SimpleVisor pode ser compilado com o Visual Studio 2015 Update 3, e embora compiladores mais antigos/novos não tenham sido testados e não sejam suportados, é provável que eles também consigam compilar o projeto. É importante, no entanto, manter as várias configurações de compilador e linker como você as vê.

O SimpleVisor foi atualmente testado com sucesso nas seguintes plataformas:

  • Windows 8.1 em um Processador Haswell (Desktop Customizado)
  • Windows 10 Redstone 1 em um Processador Sandy Bridge (Laptop Samsung 930)
  • Windows 10 Threshold 2/Redstone 1 em um Processador Skylake (Tablet Surface Pro 4)
  • Windows 10 Threshold 2 em um Processador Skylake (Dell Inspiron 11-3153 com SGX)
  • VMWare Workstation 11, mas sem EPT (VMWare não suporta EPTs de 1GB)
  • UEFI 2.4 em uma Placa-Mãe Asus Maximus VII Extreme (Desktop Customizado)

No momento, ele não foi testado no Bochs, mas não há razão para que o SimpleVisor não pudesse rodar em tal ambiente também. No entanto, se sua máquina já está rodando sob um hypervisor como Hyper-V ou Xen, o SimpleVisor não carregará.

Tenha em mente que versões x86 do Windows são expressamente não suportadas, assim como processadores anteriores à microarquitetura Nehalem, e o Windows 7 também não é suportado. O suporte para os dois últimos é fácil de adicionar e existe em certos forks.

Motivação

Muitos projetos de hypervisor por aí são ou extremamente complicados ([Xen][1], KVM, VirtualBox) e/ou de código fechado (VMware, Hyper-V), além de fortemente focados no desenvolvimento ou sistema baseado em Linux. Adicionalmente, a maioria deles (exceto o Hyper-V) é expressamente construída com o propósito de permitir a execução de máquinas virtuais, e não a virtualização de um sistema vivo e em execução, para realizar introspecção ou outras tarefas relacionadas à segurança nele.

Alguns projetos se destacam, no entanto, como o [Blue Pill][2] original da Joanna, ou projetos como [VirtDbg][3] e [HyperDbg][4]. Infelizmente, a maioria deles já se tornou bastante antiga, e alguns só funcionam em processadores x86, e não suportam sistemas operacionais mais novos como o Windows 10. Outro exemplo bastante simples, similar ao Blue Pill em alguns aspectos, mas que na verdade entrega um bom exemplo de uso de EPT para "Split-TLB" é o [MoRE][7] de Jacob Torrey/AIS.

O projeto mais próximo que realmente entrega um hypervisor centrado no Windows, moderno e suportado é o [HyperPlatform][5], e recomendamos fortemente seu uso como ponto de partida para o desenvolvimento de hypervisors do tipo pesquisa mais amplamente utilizáveis. No entanto, ao tentar criar uma "plataforma" genérica que seja mais amplamente robusta, o HyperPlatform também sofre de um pouco de inchaço, tornando mais difícil entender quais são verdadeiramente as necessidades básicas de um hypervisor, e como inicializar um. De forma similar, e mostrando um amor igual por STL/C++, mas também incluindo um loader ELF e suporte a UEFI/Linux junto com testes unitários e ainda mais robustez, está o [Bareflank][8], também da AIS. Além disso, você provavelmente está entrando na complexidade nível Xen.

O objetivo expresso deste projeto, como declarado acima, era minimizar o código de todas as formas possíveis, sem causar efeitos colaterais negativos, e focando nas necessidades de 'bare-metal'. Isso inclui:

  • Minimizar o uso de código assembly. Se não fosse pela falta de um intrinsic __lgdt, e por uma solução alternativa para o comportamento de uma API do Windows, apenas as primeiras 4 instruções do ponto de entrada do hypervisor exigiriam assembly. Como está, o projeto tem um total de 10 instruções, distribuídas em 3 funções. Isso é um afastamento massivo de outros projetos de hypervisor, que frequentemente têm múltiplas centenas de linhas de código assembly. Uma variedade de truques específicos de SO e atalhos de compilador são usados para alcançar esse resultado.
  • Reduzir verificações de erros que são improváveis de acontecer. Dado um conjunto de dados de entrada configurado corretamente e confiável, instruções como vmx_vmwrite e vmx_vmread nunca deveriam falhar, por exemplo.
  • Remover o suporte a x86, que complica as coisas e causa tratamento especial em torno de campos de 64 bits.
  • Reduzir expressamente todas as possíveis VM-Exits apenas ao mínimo definido arquiteturalmente pela Intel (CPUID, INVD, VMX Instructions e XSETBV). Isso é feito propositalmente para manter o hypervisor o menor possível, assim como o código de inicialização.
  • Sem suporte a VMCALL. Muitos hypervisors usam VMCALL como forma de sair do hypervisor, o que requer programação em assembly (não há intrinsic) e tratamento adicional de saída. O SimpleVisor usa uma armadilha de CPUID em vez disso.
  • Confiar em funções pouco conhecidas do SO para simplificar o desenvolvimento do hypervisor, como Generic DPCs e contextos de hibernação no Windows, ou o protocolo PI MP no UEFI.
  • Suportar EPT/VPID de forma muito simples, para demonstrar uma base sólida da implementação mais simples possível do recurso.
  • Portabilidade e isolamento de rotinas específicas do SO.

Outro objetivo implícito era suportar o que há de mais recente em recursos de hardware, já que até o [Bochs][6] nem sempre tem as instruções e/ou definições Intel VMX mais recentes. Estas são frequentemente encontradas em arquivos de cabeçalho como "vmcs.h" e "vmx.h" que vários projetos têm em vários níveis de definição. Por exemplo, o Xen master tem alguns motivos de VM Exit não lançados, mas não certos lançados, que o Bochs tem, embora não tenha os não lançados! Um exemplo disso é o uso de entradas EPT de 1GB, que, por exemplo, o VMWare não virtualiza corretamente.

Finalmente, o SimpleVisor é destinado a ser uma ferramenta educacional -- ele tem comentários exaustivos explicando toda a lógica por trás de cada linha de código, e dicas e truques específicos do Windows ou Intel VMX que permitem alcançar o resultado desejado. Vários bugs ou comportamentos mal documentados são explicitamente destacados.

Instalação no Windows

Baixar ferramenta