Commit Graph

292 Commits

Author SHA1 Message Date
Graham Sutherland 008934a3b4 Initial work on the ATA IDENTIFY checks
Added the code needed to execute the ATA IDENTIFY command on a disk. Currently it dumps the data out via OutputDebugString.
2018-07-11 23:07:02 +01:00
Graham Sutherland 7c5868b331 Merge pull request #119 from LordNoteworthy/disksize-ioctl-improvements
Improved disk size IOCTL checks
2018-07-11 19:03:01 +01:00
Graham Sutherland ccc56ed702 Improved disk size IOCTL checks
Previously we were only checking PhysicalDrive0 with the size IOCTL check, but on some systems PhysicalDrive0 might be associated with a single disk in a software RAID volume or an appliance boot volume. Such cases would be incorrectly flagged as a VM for being under 80GB in size. This new code instead finds the OS drive letter, maps that to a set of physical disks, then sums the sizes.  If anything goes wrong it falls back to the old method of just checking PhysicalDrive0.
2018-07-11 19:01:58 +01:00
Graham Sutherland 3bb254c11f Fixed reading disk size with WMI
Turns out that uint64 values in WMI are not actually in the llval or ullval fields, but instead get put into bstrVal. I used _tcstoui64_l to parse this string as a UINT64 to fix #111.
2018-07-11 03:53:02 +01:00
Graham Sutherland 709e1fbeee Tidied up message text
Made messages more consistent in terms of how API names were displayed and where colons were inserted into check descriptions.
2018-07-10 20:08:46 +01:00
Graham Sutherland 8a2f1e89a8 Added CreateWaitableTimer and CreateTimerQueueTimer checks.
These are basic checks for now. They just see if the API calls succeed or fail. In future we should probably use a secondary timing check alongside it to get a better idea about time acceleration.
2018-07-10 19:08:41 +01:00
Noteworthy a2aa0dc0d0 Merge pull request #113 from PolariumLabs/XPSupport
XP Support
2018-06-21 18:14:16 +02:00
Tal Liberman e31d023496 Call GetProcAddress to obtain pointers to EnumSystemFirmwareTables and GetSystemFirmwareTable since they aren't available on XP. 2018-06-17 18:28:13 +03:00
Graham Sutherland bbf020b39b Currently executing test now shows before completion.
The text used to appear after the check completed, along with the status. Now the text shows when the test starts executing, and the status appears when the check completes. This provides better UX for long-running tests.
2018-05-28 20:47:38 +01:00
Graham Sutherland 4b71d41bdf Added power capabilities checks.
The GetPwrCapabilities API can be used to test for certain power capabilities of the system. Most VMs don't support CPU power states S1-S4 or thermal control
2018-05-28 20:27:51 +01:00
Noteworthy 59558e864a Merge pull request #109 from LordNoteworthy/Noteworthy
Noteworthy
2018-04-30 18:41:41 +02:00
LordNoteworthy 95bdebf55e Update Win32_Computersystem WMI anti-VM check (Model) to include Xen, (Manufacturer) to include VBox and Xen 2018-04-30 18:39:02 +02:00
LordNoteworthy 8308255641 Added Anti-VM check using WMI (Select ProcessorId from Win32_Processor) used by (GravityRAT) 2018-04-30 13:12:24 +02:00
LordNoteworthy 21a8da4ce6 Check if process have admin rights in MSAcpi_ThermalZoneTemperature check 2018-04-30 10:55:36 +02:00
Noteworthy b0e4be30e2 Merge pull request #108 from LordNoteworthy/Noteworthy
Noteworthy
2018-04-27 21:29:44 +02:00
LordNoteworthy a175d18320 Added Anti-VM check for current CPU temperature using WMI (Select CurrentTemperature from MSAcpi_ThermalZoneTemperature) used by (GravityRAT) 2018-04-27 21:26:42 +02:00
LordNoteworthy 8cb2ffc1e6 Added Anti-VM check which look for MAC address (Paralles and Xen) used by (GravityRAT) 2018-04-27 13:06:46 +02:00
LordNoteworthy c8e52d9e91 Added Anti-VM check using WMI (Select Model/Manufacturer from Win32_ComputerSystem) used by (GravityRAT) 2018-04-27 11:34:07 +02:00
LordNoteworthy bf699607e4 Added Anti-VM check using WMI (Select SerialNumber from Win32_BIOS) used by (GravityRAT) 2018-04-27 10:44:50 +02:00
LordNoteworthy 6628e55729 Added Hyper-V/VirtualPC anti-VM checks (GravityRAT) 2018-04-27 10:10:56 +02:00
Noteworthy 213245f57d Merge pull request #107 from LordNoteworthy/Noteworthy
Added firmware table checks SMBIOS and ACPI (Qemu)
2018-04-24 19:12:39 +02:00
LordNoteworthy 9cec4b4d76 compile new binaries 2018-04-24 19:12:23 +02:00
LordNoteworthy 135e50f313 Added firmware table checks SMBIOS and ACPI (Qemu) 2018-04-24 19:09:54 +02:00
Noteworthy cfa5422a6f Merge pull request #106 from LordNoteworthy/Noteworthy
added qemu process check (qemu-ga.exe)
2018-04-24 04:55:40 +02:00
LordNoteworthy 338857ebee added qemu process check (qemu-ga.exe) 2018-04-23 20:26:06 +02:00
Noteworthy af9d45ea9c Merge pull request #104 from LordNoteworthy/Noteworthy
Noteworthy
2018-03-14 21:54:41 +01:00
LordNoteworthy c5f3a5bcb0 compile new binaries 2018-03-14 21:52:08 +01:00
LordNoteworthy a329f854e9 add some macros to enable/disable category for checks to easy debugging 2018-03-14 21:47:50 +01:00
LordNoteworthy daf7077dc0 add anti-vm check for vmware using system firmware tables 2018-03-14 21:41:44 +01:00
Noteworthy 3ffac7439a Merge pull request #103 from LordNoteworthy/Noteworthy
Noteworthy
2018-02-28 20:32:10 +01:00
LordNoteworthy 57b179752f bump version to 0.73 2018-02-28 20:31:02 +01:00
LordNoteworthy 98559d3fbb GetSystemFirmwareTable should take (resultBufferSize) as an argument for the second call 2018-02-28 20:17:14 +01:00
LordNoteworthy fc694d07fe Add more checks for VMware related processes 2018-02-28 20:09:27 +01:00
LordNoteworthy 1179c52761 Add checks for VMware related files 2018-02-28 20:06:26 +01:00
LordNoteworthy 9611c7d55f add two regsitry key values check for VMWare 2018-02-28 19:48:25 +01:00
LordNoteworthy 98b1ceb172 add more laoded dlls check: avghookx, avghooka, snxhk 2018-02-28 19:44:48 +01:00
Noteworthy b05361997d Merge pull request #102 from gsuberland/write-watch
Vastly improved VirtualAlloc write watch tests
2018-01-30 05:06:57 +01:00
Graham Sutherland f8dd8c04f5 Vastly improved VirtualAlloc write watch tests, particularly in the API test cases. 2018-01-26 18:57:05 +00:00
Noteworthy 859651e837 Merge pull request #101 from gsuberland/write-watch
Memory write watch anti-debug
2018-01-26 18:49:16 +01:00
Noteworthy d5e695c5d1 Merge pull request #100 from gsuberland/services
VM driver service checks
2018-01-26 15:01:34 +01:00
Graham Sutherland 14b1a5dce5 Added memory write watching to readme. 2018-01-24 23:34:16 +00:00
Graham Sutherland ee92ff820b Added driver services to readme 2018-01-24 22:48:08 +00:00
Graham Sutherland 51685610f5 Add write watch debugger detection
Detects external memory accesses by debuggers and hooks using the
MEM_WRITE_WATCH feature of VirtualAlloc, using 4 different approaches.
2018-01-24 22:46:06 +00:00
Graham Sutherland 660669dfd3 Add checks for VM related services.
Service checks are useful for identifying common VMs.
2018-01-24 21:20:29 +00:00
Graham Sutherland 2835f8ca59 Actually return when DLL / API isn't found properly in timing check
Forgot to put returns in there, whoops.
2018-01-24 21:16:02 +00:00
Graham Sutherland 49dbcaa46d Fix nullref exception in timing.cpp
Previously we ignored cases where ntdll wasn't found or the EP for
NtDelayExecution wasn't found, but these can occur if the process is
sandboxed and the LoadLibrary / GetProcAddress calls are filtered. As
such it's worth checking for NULL and reporting the problem.
2018-01-24 21:13:40 +00:00
Graham Sutherland 57b5511828 Merge remote-tracking branch 'refs/remotes/LordNoteworthy/master' into firmware-checks 2018-01-24 20:56:03 +00:00
Noteworthy 9345ebf981 Merge pull request #96 from LordNoteworthy/Noteworthy
Noteworthy
2018-01-05 09:53:29 +01:00
Noteworthy 439ca6ccd5 Bug fix: ascii_to_wide_str() wrong argument 2017-12-19 18:33:43 +01:00
Noteworthy 2a0521f927 fix bug: array with duplicate strings 2017-12-19 17:24:57 +01:00