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
Copy file name to clipboardExpand all lines: README.md
-5Lines changed: 0 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,11 +26,6 @@ The library is:
26
26
- Contains separate MIT and GPL-3.0 compliant library header files
27
27
28
28
29
-
> [!NOTE]
30
-
> The library doesn't guarantee it'll be accurate. If you found a false positive or a false negative then please create an issue with information on what your VM is, what OS you're using, and other relevant details.
@@ -155,8 +165,9 @@ This will essentially return the VM brand as a `std::string`. The exact possible
155
165
-`bhyve`
156
166
-`QEMU`
157
167
-`KVM`
158
-
-`KVM Hyper-V Enlightenment`
159
168
-`QEMU+KVM`
169
+
-`KVM Hyper-V Enlightenment`
170
+
-`QEMU+KVM Hyper-V Enlightenment`
160
171
-`Virtual PC`
161
172
-`Microsoft Hyper-V`
162
173
-`Microsoft Virtual PC/Hyper-V`
@@ -326,7 +337,7 @@ VMAware provides a convenient way to not only check for VMs, but also have the f
326
337
| `VM::CTYPE` | Check if the chassis type is valid (it's very often invalid in VMs) | Linux | 10% | | | |
327
338
| `VM::DOCKERENV` | Check if /.dockerenv or /.dockerinit file is present | Linux | 80% | | | |
328
339
| `VM::DMIDECODE` | Check if dmidecode output matches a VM brand | Linux | 55% | Admin | | |
329
-
| `VM::DMESG` | Check if dmesg output matches a VM brand | Linux | 55% | | | |
340
+
| `VM::DMESG` | Check if dmesg output matches a VM brand | Linux | 55% | Admin | | |
330
341
| `VM::HWMON` | Check if /sys/class/hwmon/ directory is present. If not, likely a VM | Linux | 75% | | | |
331
342
| `VM::SIDT5` | Check if the 5th byte after sidt is null | Linux | 45% | | | |
332
343
| `VM::CURSOR` | Check if cursor isn't active for 5 seconds (sign of automated VM environment) | Windows | 5% | | | |
@@ -389,7 +400,7 @@ VMAware provides a convenient way to not only check for VMs, but also have the f
389
400
| `VM::VMWARE_IOMEM` | Check for VMware string in /proc/iomem | Linux | 65% | | | |
390
401
| `VM::VMWARE_IOPORTS` | Check for VMware string in /proc/ioports | Linux | 70% | | | |
391
402
| `VM::VMWARE_SCSI` | Check for VMware string in /proc/scsi/scsi | Linux | 40% | | | |
392
-
| `VM::VMWARE_DMESG` | Check for VMware-specific device name in dmesg output | Linux | 65% | | | |
403
+
| `VM::VMWARE_DMESG` | Check for VMware-specific device name in dmesg output | Linux | 65% | Admin | | |
393
404
| `VM::VMWARE_STR` | Check str assembly instruction method for VMware | Windows | 35% | | | |
394
405
| `VM::VMWARE_BACKDOOR` | Check for official VMware io port backdoor technique | Windows | 100% | | | 32-bit |
395
406
| `VM::VMWARE_PORT_MEM` | Check for VMware memory using IO port backdoor | Windows | 85% | | | 32-bit |
@@ -426,6 +437,7 @@ VMAware provides a convenient way to not only check for VMs, but also have the f
426
437
| `VM::ENABLE_HYPERV_HOST` | Windows 11 (and 10 if enabled manually) may have Hyper-V as a default virtualisation solution for any host program even if the OS is running as host. There isn't a way to detect whether the host program is ran in default virtualisation mode, or manually intended virtualisation. This is a Hyper-V specific problem, and the library will use heuristical methods to discard Hyper-V's host virtualiser as not running in a VM by default. But if this flag is enabled then it will still count it regardless of the risk that it might be Hyper-V's default host virtualisation for every host program. So basically this flag means that "I'm aware this program might be running in a default virtualised environment on host, but I'll still count this as running in a VM anyway whether it's default virtualisation or manually intended virtualisation". |
427
438
| `VM::MULTIPLE` | This is specific to `VM::brand()`. This will basically return a `std::string` message of what brands could be involved. For example, it could return "`VMware or VirtualBox`" instead of having a single brand string output. This has no effect if applied to any other functions than `VM::brand()`. |
428
439
| `VM::HIGH_THRESHOLD` | This is specific to `VM::detect()` and `VM::percentage()`, which will set the threshold bar to confidently detect a VM by 3x higher. |
440
+
| `VM::SPOOFABLE` | This will enable all the "spoofable" techniques (which are 1/3 of the total amount of techniques) |
429
441
430
442
<br>
431
443
@@ -449,7 +461,10 @@ VMAware provides a convenient way to not only check for VMs, but also have the f
449
461
| -c | --conclusion | Prints the conclusion message string |
450
462
| -p | --percent | Prints the VM likeliness percentage between 0 and 100 |
451
463
| -n | --number | Prints the number of VM detection techniques it can performs |
464
+
| -t | --type | Returns the VM type (if a VM was found) |
452
465
| | --disable-hyperv-host | Disable the possibility of Hyper-V default virtualisation result on host OS (this can be used as a combination with the above commands) |
466
+
| | --disable-notes | No notes will be provided |
467
+
| | --spoofable | Allow spoofable techniques to be ran (not included by default)
453
468
454
469
> [!NOTE]
455
470
> If you want a general result of everything combined above, do not put any arguments. This is the intended way to use the CLI tool.
0 commit comments