Skip to content

Commit 28a83f1

Browse files
authored
Merge pull request #443 from kernelwernel/dev
improved detections against hardened CPU topologies #442
2 parents 7e613d7 + 0fa1c3c commit 28a83f1

14 files changed

+621
-732
lines changed

.gitattributes

100644100755
File mode changed.

.github/actions/setup_cache/action.yml

100644100755
File mode changed.

.github/workflows/code_ql_analysis.yml

100644100755
File mode changed.

KEYS.md

100644100755
File mode changed.

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,8 @@ And if you found this project useful, a star would be appreciated :)
244244
<br>
245245

246246
## Credits, contributors, and acknowledgements ✒️
247-
- [Requiem](https://github.com/NotRequiem) (Co-developer)
247+
- [kernelwernel](https://github.com/kernelwernel) (Maintainer and developer)
248+
- [Requiem](https://github.com/NotRequiem) (Maintainer and co-developer)
248249
- [Check Point Research](https://research.checkpoint.com/)
249250
- [Unprotect Project](https://unprotect.it/)
250251
- [Al-Khaser](https://github.com/LordNoteworthy/al-khaser)

SECURITY.md

100644100755
File mode changed.

assets/demo.jpg

100644100755
File mode changed.

assets/vmaware.png

100644100755
File mode changed.

auxiliary/requirements.txt

100644100755
File mode changed.

docs/documentation.md

100644100755
Lines changed: 91 additions & 92 deletions
Large diffs are not rendered by default.

papers/Detecting System Emulators.pdf

100644100755
File mode changed.

papers/Measuring virtual machine detection in malware using DSD tracer.pdf

100644100755
File mode changed.

src/cli.cpp

100644100755
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ Neko Project II
276276
NoirVisor
277277
Qihoo 360 Sandbox
278278
nsjail
279-
Hypervisor-Phantom
280279
DBVM
281280
)";
282281

@@ -416,7 +415,7 @@ std::string vm_description(const std::string& vm_brand) {
416415
{ brands::BHYVE, "bhyve (pronounced \"bee hive\", formerly written as BHyVe for \"BSD hypervisor\") is a free type 2 hosted hypervisor initially written for FreeBSD. It can also be used on a number of illumos based distributions including SmartOS, OpenIndiana, and OmniOS. bhyve has a modern codebase and uses fewer resources compared to its competitors. In the case of FreeBSD, the resource management is more efficient." },
417416
{ brands::KVM, "KVM is a free and open source module of the Linux kernel released in 2007. It uses hardware virtualization extensions, and has had support for hot swappable vCPUs, dynamic memory management, and Live Migration. It also reduces the impact that memory write-intensive workloads have on the migration process. KVM emulates very little hardware components, and it defers to a higher-level client application such as QEMU." },
418417
{ brands::QEMU, "The Quick Emulator (QEMU) is a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor. It translates the emulated binary codes to an equivalent binary format which is executed by the machine. It provides a variety of hardware and device models for the VM, while often being combined with KVM. However, no concrete evidence of KVM was found for this system." },
419-
{ brands::QEMU_KVM, "QEMU (a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor) is being used with Kernel-based Virtual Machine (KVM, a free and open source module of the Linux kernel) to emulate hardware at near-native speeds." },
418+
{ brands::QEMU_KVM, "QEMU (a free and open-source emulator that uses dynamic binary translation to emulate a computer's processor) is being used with Kernel-based Virtual Machine (KVM, a free and open source module of the Linux kernel) to virtualize hardware at near-native speeds." },
420419
{ brands::KVM_HYPERV, "KVM-HyperV integration allows Linux KVM hosts to expose Hyper-V-compatible paravirtualization interfaces to Windows guests. Enables performance optimizations like enlightened VMCS (Virtual Machine Control Structure) and TSC (Time Stamp Counter) synchronization, reducing overhead for Windows VMs running on Linux hypervisors." },
421420
{ brands::QEMU_KVM_HYPERV, "A QEMU/KVM virtual machine with Hyper-V enlightenments. These features make Windows and Hyper-V guests think they’re running on top of a Hyper-V compatible hypervisor and use Hyper-V specific features." },
422421
{ brands::HYPERV, "Hyper-V is Microsoft's proprietary native hypervisor that can create x86 VMs on Windows. Released in 2008, it supercedes previous virtualization solutions such as Microsoft Virtual Server and Windows VirtualPC. Hyper-V uses partitioning to isolate the guest OSs, and has \"enlightenment\" features for bypassing device emulation layers, allowing for faster execution including when Windows is virtualized on Linux." },
@@ -471,7 +470,6 @@ std::string vm_description(const std::string& vm_brand) {
471470
{ brands::NOIRVISOR, "NoirVisor is a hardware-accelerated hypervisor with support to complex functions and purposes. It is designed to support processors based on x86 architecture with hardware-accelerated virtualization feature. For example, Intel processors supporting Intel VT-x or AMD processors supporting AMD-V meet the requirement. It was made by Zero-Tang." },
472471
{ brands::QIHOO, "360 sandbox is a part of 360 Total Security. Similar to other sandbox software, it provides a virtualized environment where potentially malicious or untrusted programs can run without affecting the actual system. Qihoo 360 Sandbox is commonly used for testing unknown applications, analyzing malware behavior, and protecting users from zero-day threats." },
473472
{ brands::NSJAIL, "nsjail is a process isolation tool for Linux. It utilizes Linux namespace subsystem, resource limits, and the seccomp-bpf syscall filters of the Linux kernel. It can be used for isolating networking services, CTF challenges, and containing invasive syscall-level OS fuzzers." },
474-
{ brands::HYPERVISOR_PHANTOM, "Hypervisor-Phantom is an automated setup solution designed to evade detection from advanced malware, enabling thorough analysis. It employs a highly customized version of QEMU/KVM, EDK2, and the Linux Kernel. This also spoofs many unique hypervisor identifiers, effectively disguising the environment. This setup enhances the accuracy and reliability of malware analysis by minimizing the risk of detection." },
475473
{ brands::DBVM, "DBVM is a ultra-lightweight virtual machine host that makes Windows run in a virtual machine so that Cheat Engine can operate at a higher level than the OS using a device driver. Instead of virtualizing devices it generally passes on interrupts unaltered meaning it has a very small impact on performance." },
476474
{ brands::NULL_BRAND, "Indicates no detectable virtualization brand. This result may occur on bare-metal systems, unsupported/obscure hypervisors, or when anti-detection techniques (e.g., VM escaping) are employed by the guest environment." }
477475
};

0 commit comments

Comments
 (0)