检测应用程序是否在虚拟机上运行

时间:2011-09-21 12:47:35

标签: c++ virtual-machine

我在stackoverflow中通过了some links。但是这里给出的代码对于虚拟框不起作用。我也试过了redpill,但那也不行。我的应用程序将在linux和windows上运行(最好) 如果有人有任何解决方案,请告诉我。

编辑:Preet Sangha的链接不能正常工作

2 个答案:

答案 0 :(得分:2)

VBox 1.0使用不同的方法。查看http://spth.virii.lu/eof2/articles/WarGame/vboxdetect.html

答案 1 :(得分:1)

来自http://www.gedzac.com/rrlf.dr.eof.eZine/articles/WarGame/vboxdetect.html

检查系统中是否存在伪设备\\.\VBoxMiniRdrDN(您需要CreateFile())

#include <windows.h>

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    if(CreateFile("\\\\.\\VBoxMiniRdrDN",GENERIC_READ,FILE_SHARE_READ,
        NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL) != INVALID_HANDLE_VALUE)
    {
        MessageBox(NULL,"VBox detected!","Warning",MB_OK|MB_ICONWARNING);
    }

    else
    {
        MessageBox(NULL,"Not inside VBox","Info",MB_OK|MB_ICONINFORMATION);
    }
}