2011-09-21 53 views
2

我在栈溢出中经过了somelinks。但是这里给出的代码不适用于虚拟盒子。我也尝试redpill但那不工作。我的应用程序将运行在Linux和Windows(最好)。
如果有人有任何解决方法,请让我知道。检测虚拟框上运行的应用程序

编辑:普里特僧伽的链接不从http://www.gedzac.com/rrlf.dr.eof.eZine/articles/WarGame/vboxdetect.html

检查工作,以及

+1

否。虚拟化的通用目的是通过“足够接近”同时在同一硬件上运行多个操作系统 - 不一定难以区分。 –

回答

1

如果伪设备\\.\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); 
    } 
} 
+0

我试过这个..但是这不起作用(试用win xp,vbox3.2) – ashmish2

+0

你有没有运行客户端工具? –

相关问题