-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
26 additions
and
51 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -72,7 +72,7 @@ This project also provides a tiny, but handy CLI tool utilising the full potenti | |
<br> | ||
|
||
## Installation 📥 | ||
To install the library, download or copy paste the `vmaware.hpp` file in the latest [release section](https://github.com/kernelwernel/VMAware/releases/latest) to your project. No CMake or shared object linkages are necessary, it's literally that simple. | ||
To install the library, download or copy paste the `vmaware.hpp` file in the [release section](https://github.com/kernelwernel/VMAware/releases/) to your project. No CMake or shared object linkages are necessary, it's literally that simple. | ||
|
||
However, if you want the full project (globally accessible headers with <vmaware.hpp> and the CLI tool), follow these commands: | ||
```bash | ||
|
@@ -103,10 +103,10 @@ You can view the full docs [here](docs/documentation.md). Trust me, it's not too | |
|
||
## Q&A ❓ | ||
- How does it work? | ||
> It utilises a comprehensive list of low-level and high-level anti-VM techniques that gets accounted in a scoring system. The scores for each technique are arbitrarily given, and a certain threshold score must be met to detect if it's running in a VM. | ||
> It utilises a comprehensive list of low-level and high-level anti-VM techniques that gets accounted in a scoring system. The scores for each technique are arbitrarily given, and a threshold must be met to detect if it's running in a VM. | ||
- Who is this library for? | ||
> It's designed for security researchers, VM engineers, gamer developers, and pretty much anybody who needs a practical and rock-solid VM detection mechanism in their project. For example, if you're making a VM and you're testing the effectiveness of concealing itself, or if you're a malware analyst and you want to check if your VM environment is good enough to avoid detection. One of the major intentions is to thwart reverse engineers at probing your software in a VM for a legitimate software product (especially games). | ||
> It's designed for security researchers, VM engineers, and pretty much anybody who needs a practical and rock-solid VM detection mechanism in their project. For example, if you're making a VM and you're testing the effectiveness of concealing itself, or if you're a malware analyst and you want to check if your VM environment is good enough to avoid detection. | ||
- Why another VM detection project? | ||
> There's already loads of projects that have the same goal such as [InviZzzible](https://github.com/CheckPointSW/InviZzzible), [pafish](https://github.com/a0rtega/pafish) and [Al-Khaser](https://github.com/LordNoteworthy/al-khaser). But the difference between the aforementioned projects is that they don't provide a programmable interface to interact with the detection mechanisms, on top of having little to no support for non-Windows systems. I wanted the core detection techniques to be accessible programmatically in a cross-platform way for everybody to get something useful out of it rather than providing just a CLI tool like those projects. | ||
|
@@ -115,10 +115,10 @@ You can view the full docs [here](docs/documentation.md). Trust me, it's not too | |
> Yes. There are some techniques that are trivially spoofable, and there's nothing the library can do about it whether it's a deliberate false negative or even a false positive. This is a problem that every VM detection project is facing, which is why the library is trying to test every technique possible to get the best result based on the environment it's running under. | ||
- Can I use this for malware? | ||
> This project is not soliciting the development of malware for obvious reasons. Even if you intend to use it for concealment/evasion purposes, it'll most likely be flagged by antiviruses anyway and nothing is obfuscated to begin with. Good luck manually obfuscating 6000 lines of C++ code lmfao | ||
> This project is not soliciting the development of malware for obvious reasons. Even if you intend to use it for concealment purposes, it'll most likely be flagged by antiviruses anyway and nothing is obfuscated to begin with. Good luck manually obfuscating 6000 lines of C++ code lmfao | ||
- Why GPL 3.0 and MIT? | ||
> I would've made it strictly MIT so proprietary software can make use of the library, but some of the techniques employed are from GPL 3.0 projects, and I have no choice but to use the same license for legal reasons. This gave me an idea to make an MIT version without the GPL code, so that proprietary software can make use of this library without the legal open-source requirement. It should be noted that the MIT version removes **10** GPL techniques out of the total 80+ as of the 1.2 release, which may slightly impact the overall result to be inaccurate. | ||
> I would've made it strictly MIT so proprietary software can make use of the library, but some of the techniques employed are from GPL 3.0 projects, and I have no choice but to use the same license for legal reasons. This gave me an idea to make an MIT version without all of the GPL code so it can also be used without forcing your code to be open-source. It should be noted that the MIT version removes **8** techniques, and the lesser the number of mechanisms, the less accurate the overall result might be. | ||
- The tool has many false positives under a Windows 11 host, why? | ||
> This is because it is in fact running under a VM. More specifically, Hyper-V might be used by default for every program that's running in Windows 11. | ||
|
@@ -133,11 +133,6 @@ And if you found this project useful, a star would be appreciated :) | |
<br> | ||
|
||
## Credits and contributors ✒️ | ||
- [Requiem](https://github.com/NotRequiem) | ||
- [Alex](https://github.com/greenozon) | ||
- [Marek Knápek](https://github.com/MarekKnapek) | ||
- [Vladyslav Miachkov](https://github.com/fameowner99) | ||
- [Alan Tse](https://github.com/alandtse) | ||
- [Check Point Research](https://research.checkpoint.com/) | ||
- [Unprotect Project](https://unprotect.it/) | ||
- [Al-Khaser](https://github.com/LordNoteworthy/al-khaser) | ||
|
@@ -146,6 +141,10 @@ And if you found this project useful, a star would be appreciated :) | |
- N. Rin, EP_X0FF | ||
- [Peter Ferrie, Symantec](https://github.com/peterferrie) | ||
- [Graham Sutherland, LRQA Nettitude](https://www.nettitude.com/uk/) | ||
- [Requiem](https://github.com/NotRequiem) | ||
- [Alex](https://github.com/greenozon) | ||
- [Marek Knápek](https://github.com/MarekKnapek) | ||
- [Vladyslav Miachkov](https://github.com/fameowner99) | ||
- [(Offensive Security) Danny Quist]([email protected]) | ||
- [(Offensive Security) Val Smith]([email protected]) | ||
- Tom Liston + Ed Skoudis | ||
|
@@ -156,6 +155,6 @@ And if you found this project useful, a star would be appreciated :) | |
<br> | ||
|
||
## Legal 📜 | ||
I am not responsible nor liable for any damage you cause through any malicious usage (especially through malware) of this project. | ||
I am not responsible nor liable for any damage you cause through any malicious usage of this project. | ||
|
||
License: GPL-3.0 | ||
License: GPL-3.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters