You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| Hyper-V artifact (not an actual VM) | `brands::HYPERV_ARTIFACT` | Unknown | Windows Hyper-V has a tendency to modify host hardware values with VM values. In other words, this brand signifies that you're running on a host system, but the Hyper-V that's installed (either by default or manually by the user) is misleadingly making the whole system look like it's in a VM when in reality it's not. <br><br> For more information, refer to [this graph](https://github.com/kernelwernel/VMAware/blob/main/assets/hyper-x/v5/Hyper-X_version_5.drawio.png). |
652
+
| Hyper-V root partition (host system, not an actual VM) | `brands::HYPERV_ARTIFACT` | Host machine | Windows Hyper-V has a tendency to modify host hardware values with VM values. In other words, this brand signifies that you're running on a host system, but the Hyper-V that's installed (either by default or manually by the user) is misleadingly making the whole system look like it's in a VM when in reality it's not. <br><br> For more information, refer to [this graph](https://github.com/kernelwernel/VMAware/blob/main/assets/hyper-x/v5/Hyper-X_version_5.drawio.png). |
{ VM::brands::INTEL_KGT, "Intel Kernel Guard Technology (KGT) is a policy specification and enforcement framework for ensuring runtime integrity of kernel and platform assets. Demonstrated secure enclaves for critical OS components using VT-x/EPT before being superseded by CET (Control-flow Enforcement Technology) and HyperGuard in Windows 10." },
628
628
{ VM::brands::AZURE_HYPERV, "Azure Hyper-V is Microsoft's cloud-optimized hypervisor variant powering Azure VMs. Implements Azure-specific virtual devices like NVMe Accelerated Networking and vTPMs. Supports nested virtualization for running Hyper-V/containers within Azure VMs, enabling cloud-based CI/CD pipelines and dev/test environments." },
629
629
{ VM::brands::SIMPLEVISOR, "SimpleVisor is a minimalist Intel VT-x hypervisor by Alex Ionescu for Windows/Linux research. Demonstrates EPT-based memory isolation and hypercall handling. Used to study VM escapes and hypervisor rootkits, with hooks for intercepting CR3 changes and MSR accesses." },
630
-
{ VM::brands::HYPERV_ARTIFACT, "VMAware detected Hyper-V operating as a type 1 hypervisor, not as a guest virtual machine. Although your hardware/firmware signatures match Microsoft's Hyper-V architecture, we determined that you're running on baremetal. This prevents false positives, as Windows sometimes runs under Hyper-V (type 1) hypervisor." },
630
+
{ VM::brands::HYPERV_ROOT, "VMAware detected Hyper-V operating as a type 1 hypervisor, not as a guest virtual machine. Although your hardware/firmware signatures match Microsoft's Hyper-V architecture, we determined that you're running on baremetal. This prevents false positives, as Windows sometimes runs under Hyper-V (type 1) hypervisor." },
631
631
{ VM::brands::UML, "User-Mode Linux (UML) allows running Linux kernels as user-space processes using ptrace-based virtualization. Primarily used for kernel debugging and network namespace testing. Offers lightweight isolation without hardware acceleration, but requires host/guest kernel version matching for stable operation." },
632
632
{ VM::brands::POWERVM, "IBM PowerVM is a type 1 hypervisor for POWER9/10 systems, supporting Live Partition Mobility and Shared Processor Pools. Implements VIOS (Virtual I/O Server) for storage/networking virtualization, enabling concurrent AIX, IBM i, and Linux workloads with RAS features like predictive failure analysis." },
633
633
{ VM::brands::GCE, "Google Compute Engine (GCE) utilizes KVM-based virtualization with custom Titanium security chips for hardware root of trust. Features live migration during host maintenance and shielded VMs with UEFI secure boot. Underpins Google Cloud's Confidential Computing offering using AMD SEV-SNP memory encryption." },
@@ -904,7 +904,7 @@ static void general(
904
904
}
905
905
#elif (CLI_WINDOWS)
906
906
if (!is_admin()) {
907
-
std::cout << note << " Not running as admin - NVRAM detections will be disabled.\n";
907
+
std::cout << note << " Not running as admin, some technique may not run\n";
// not in macro due to mismatch with VM::brands and brands:: renaming this to HYPERV_ROOT
502
+
[[deprecated("Use VM::brands::HYPERV_ROOT instead")]] staticconstexprconstchar* HYPERV_ARTIFACT = "Hyper-V root partition (host system, not an actual VM)";
502
503
LEGACY(UML, "User-mode Linux");
503
504
LEGACY(POWERVM, "IBM PowerVM");
504
505
LEGACY(GCE, "Google Compute Engine (KVM)");
@@ -707,7 +708,7 @@ struct VM {
707
708
INTEL_KGT,
708
709
AZURE_HYPERV,
709
710
SIMPLEVISOR,
710
-
HYPERV_ARTIFACT,
711
+
HYPERV_ROOT,
711
712
UML,
712
713
POWERVM,
713
714
GCE,
@@ -762,7 +763,7 @@ struct VM {
762
763
staticconstexpru8 LINUX_END = VM::THREAD_COUNT;
763
764
staticconstexpru8 MACOS_START = VM::THREAD_COUNT;
764
765
staticconstexpru8 MACOS_END = VM::MAC_SYS;
765
-
766
+
766
767
// this is specifically meant for VM::detected_count() to
767
768
// get the total number of techniques that detected a VM
case brand_enum::INTEL_KGT: return VM::brands::INTEL_KGT;
4687
4688
case brand_enum::AZURE_HYPERV: return VM::brands::AZURE_HYPERV;
4688
4689
case brand_enum::SIMPLEVISOR: return VM::brands::SIMPLEVISOR;
4689
-
case brand_enum::HYPERV_ARTIFACT: return VM::brands::HYPERV_ARTIFACT;
4690
+
case brand_enum::HYPERV_ROOT: return VM::brands::HYPERV_ROOT;
4690
4691
case brand_enum::UML: return VM::brands::UML;
4691
4692
case brand_enum::POWERVM: return VM::brands::POWERVM;
4692
4693
case brand_enum::GCE: return VM::brands::GCE;
@@ -5078,7 +5079,7 @@ struct VM {
5078
5079
5079
5080
/**
5080
5081
* @brief Check for timing anomalies in the system
5081
-
* @category x86x86
5082
+
* @category x86
5082
5083
* @implements VM::TIMER
5083
5084
*/
5084
5085
[[nodiscard]] staticbooltimer() {
@@ -12555,7 +12556,7 @@ struct VM {
12555
12556
case brand_enum::BAREVISOR: return"Hypervisor (type 1)";
12556
12557
case brand_enum::HYPERPLATFORM: return"Hypervisor (type 1)";
12557
12558
case brand_enum::MINIVISOR: return"Hypervisor (type 1)";
12558
-
case brand_enum::HYPERV_ARTIFACT: return"Unknown"; // This refers to the type 1 hypervisor where Windows normally runs under, we put "Unknown" to clarify you're not running under a VM if this is detected
12559
+
case brand_enum::HYPERV_ROOT: return"Host machine"; // This refers to the type 1 hypervisor where Windows normally runs under, we put "Unknown" to clarify you're not running under a VM if this is detected
0 commit comments