检测程序是否是在虚拟机中运行源码是一款检测如果你的程序是在虚拟机内运行和禁止工具,最近在项目中遇到一个虚拟机检测的问题,需要检测当前程序是否在虚拟机中运行,相信很多朋友也会有同样的问题,大家下载编译使用。
首先我们要了解一下什么是虚拟机, 对虚拟机的通用解释是通过软件模拟的具有完整硬件系统功能的, 运行在一个完全隔离环境中的完整计算机系统. 通过虚拟机软件, 你可以在一台物理计算机上模拟出一台或多台虚拟的计算机, 这些虚拟机就像真正的计算机那样进行工作, 例如你可以安装操作系统, 安装应用程序, 访问网络资源等等. 对于你而言, 它只是运行在你物理计算机上的一个应用程序, 但是对于在虚拟机中运行的应用程序而言, 它就像是在真正的计算机中进行工作. 因此, 当我在虚拟机中进行软件评测时, 可能系统一样会崩溃, 但是, 崩溃的只是虚拟机上的操作系统, 而不是物理计算机上的操作系统, 并且, 使用虚拟机的恢复功能, 我可以马上恢复虚拟机到安装软件之前的状态. 现在比较流行的虚拟机软件有 VMWare 和 Microsoft Virtual PC , 它们都能在 Windows 系统上虚拟出多个计算机, 用于安装 Windows 或其他操作系统. 相比而言, VMWare 不论是在多操作系统的支持上, 还是在执行效率上, 都比 Microsoft Virtual PC 明显高出一筹. 但是 VMWare 没有虚拟显卡, 而是通过 VMWare Tools 才能用上高分辨率和真彩色. Microsoft Virtual PC 模拟了一个比较通用的显卡:S3Trio32/64(4M), 这点看来比较通用, 易用性较好.
以下主要代码主要判断程序是否在虚拟机环境中运行, 测试环境为 Windows 系统, 在 Windows XP SP2 + Microsoft Visual C++ 2003 下调试成功, 附编译的检测程序