Project Icon

VMAware

跨平台虚拟机检测库 简单高效多功能

VMAware是一款跨平台C++虚拟机检测库。它具有简单易用的接口,支持多种平台和架构,包含100多种VM检测技术,可识别40多个VM品牌。该库提供细粒度控制,支持检测虚拟机管理程序、模拟器和容器等半VM技术。VMAware采用仅头文件设计,兼容C++11及以上版本,并通过结果缓存提升性能。

VMAware



VMAware(VM + Aware)是一个跨平台的C++虚拟机检测库。

该库具有以下特点:

  • 使用非常简单
  • 跨平台(支持Windows、MacOS和Linux)
  • 兼容x86和ARM架构,并向后兼容32位系统
  • 提供多达100多种独特的虚拟机检测技术[列表]
  • 能够检测40多种虚拟机品牌,包括VMware、VirtualBox、QEMU、Hyper-V等[列表]
  • 非常灵活,可以完全精细控制执行哪些检测技术
  • 能够检测各种半虚拟化技术,如虚拟机监控器、模拟器、容器等
  • 支持C++11及以上版本
  • 仅头文件实现
  • 采用记忆化技术,缓存并检索过去的结果以提高性能
  • 提供符合MIT和GPL-3.0许可证的独立库头文件

示例 🧪

#include "vmaware.hpp"
#include <iostream>

int main() {
    if (VM::detect()) {
        std::cout << "检测到虚拟机!" << "\n";
        std::cout << "虚拟机名称:" << VM::brand() << "\n";
    } else {
        std::cout << "在物理机上运行" << "\n";
    }
    
    std::cout << "虚拟机确定性:" << (int)VM::percentage() << "%" << "\n";
}

结构 ⚙️



命令行工具 🔧

本项目还提供了一个小巧但实用的命令行工具,充分利用了库的全部潜力。它可以为您提供有关运行环境的各种详细信息。


安装 📥

要安装该库,只需从最新的发布区下载vmaware.hpp文件到您的项目中。无需CMake或共享对象链接,就是这么简单。

但是,如果您想要完整的项目(全局可访问的头文件<vmaware.hpp>和命令行工具),请按照以下命令操作:

git clone https://github.com/kernelwernel/VMAware 
cd VMAware

Linux系统:

sudo dnf/apt/yum update -y # 根据您的发行版更改此命令
mkdir build
cd build
cmake ..
sudo make install

Windows系统:

cmake -S . -B build/ -G "Visual Studio 16 2019"

如果您只想要二进制文件,请前往最新的发布区


文档 📒

您可以在这里查看完整文档。所有详细信息,如函数、技术、设置和示例都已提供。相信我,它并不令人生畏 ;)


问答 ❓

  • 它是如何工作的?

它利用了一份全面的低级和高级反虚拟机技术列表,这些技术在评分系统中进行计算。每种技术的分数(0-100)是任意给定的,每个检测到虚拟机的技术都会将其分数添加到一个累积点数中,通过一个阈值点数来决定它是否真的在虚拟机中运行。

  • 这个库适合谁使用?

它专为安全研究人员、虚拟机工程师、游戏开发者以及任何需要在项目中使用实用且可靠的虚拟机检测机制的人设计。例如,如果您正在开发虚拟机并测试其隐藏自身的效果,或者如果您是游戏开发者或任何专有软件开发者想要阻止逆向工程,或者如果您是恶意软件分析师想要检查您的虚拟机环境是否足够好以避免被检测,那么这个库都是适合的。

  • 为什么还要开发另一个虚拟机检测项目?

已经有很多具有相同目标的项目,如InviZzziblepafishAl-Khaser。但这些项目与本项目的区别在于,它们没有提供可编程接口来与检测机制交互,而且对非Windows系统的支持很少或没有。我希望核心检测技术能以跨平台的方式提供可编程访问,让每个人都能从中受益,而不仅仅是提供一个命令行工具。

  • 是否可以伪造结果?

是的。有一些技术很容易被欺骗,无论是故意的假阳性还是假阴性,库都无法解决这个问题。这是每个虚拟机检测项目都面临的问题,这就是为什么该库尝试测试所有可能的技术,以根据运行环境获得最佳结果。

  • 关于将其用于恶意软件怎么看?

出于显而易见的原因,本项目不鼓励开发恶意软件。即使你打算将其用于隐蔽目的,它很可能还是会被杀毒软件标记,而且从一开始就没有进行任何混淆。

  • 为什么选择 GPL 3.0 和 MIT 许可证?

我本想严格使用 MIT 许可证,这样专有软件也可以使用该库,但是一些使用的技术来自 GPL 3.0 项目,出于法律原因我别无选择,只能使用相同的许可证。这给了我一个想法,制作一个不包含所有 GPL 代码的 MIT 版本,这样就可以在不强制开源代码的情况下使用。需要注意的是,MIT 版本移除了85种技术中的12种(截至1.7版本),机制数量越少,整体结果可能就越不准确。

  • 编译时出现链接错误

如果你使用 gcc 或 clang 编译,请添加 -lm-lstdc++ 标志,或者改用 g++/clang++ 编译器。如果你在全新的 Linux 虚拟机环境中收到链接错误,请使用 sudo apt/dnf/yum update -y 更新系统以安装必要的 C++ 组件。


问题和拉取请求 📬

如果你有任何建议、想法或任何形式的贡献,请随时提出!我很乐意在问题部分进行讨论。如果你想私下询问什么,我的 Discord 是 kr.nl

如果你觉得这个项目有用,给个星星就更感谢啦 :)


致谢和贡献者 ✒️

[列出了所有贡献者和项目的名称,保持原文不变]


法律声明 📜

对于你通过任何恶意使用本项目造成的任何损害,我概不负责。

许可证:GPL-3.0

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号