当前位置:首页 > 虚拟机 > 正文

虚拟机检测程序


一、ce怎么检测虚拟机程序识别虚拟机程序的方法如下:
1查看虚拟机的硬件配置信息如CPU、内存等信息,该信息为当前程序。它是在虚拟机中运行的。2.查找IntelVT-x、AMD-V等特定的虚拟化指示标志(VirtualizationIndicatorFlags)来判断当前程序是否运行在虚拟机中。3.请注意,运行某些虚拟机时有可用的API函数,例如VMwareTools、Hyper-VIntegrationServices等。如果这些函数存在,则程序可能运行在虚拟机环境中。


二、梦幻如何检测虚拟机、运行特权命令检测
在x86系统上,有些命令在获取硬件相关信息时不会产生异常,如sidt、sgdt、sldt、cpuid等。但是,出于性能原因,VMware不会虚拟化这些命令。这意味着这些指令在VM虚拟机和物理机上运行时会返回不同的结果。
Redfill
简单来说,IDT寄存器的值是通过执行sidt指令(IDT:InterruptDescriptorTable)来获取的,可以理解为简单的找到用来处理中断的函数。如第3项所示,共有256项。常用的int3断点。Redpill的测试作者表明,虚拟机的IDT地址通常位于0xFFXXXXXX,而在真实主机上则位于0x80xxxxxx。因此,执行SIDT命令后,可以通过判断返回的第一个字节是否大于0xD0来判断自己是否处于虚拟机中。同时,该技术必须能够在单核处理器上运行。这是因为每个核心只有一个IDT表。对于多核交换机,很难确定具体值。
结果可能会因虚拟机升级而有所不同。
2.在虚拟机程序中,使用CPUID指令来确定是否设置了正在执行的代码的功能位。
boolIsVMWare();
intmain(intargc,char*argv[])
{
boolbRet;
bRet=IsVMWare();
if(bRet){
printf("在虚拟机环境中运行");
}
else
{
printf("在真实物理机环境上运行");
}
getchar();
return0;
}
boolIsVMWare()
{
unsignedintcpuInfo[4];
__cpuid((int*)cpuInfo,1);
return((cpuInfo[2]>>31)&1)==1;
}
登录后复制

3.本地描述符表(LDT)
sgdt和sldt指令检测技术的事实是它们是由处理器而不是操作系统分配的。Windows一般情况下不会使用LDT,但是VM提供了对LDT的虚拟化支持,所以结果是LDT位置在物理机上为0但在虚拟机上非0。同时,对于GTR来说,虚拟机必须是0xFFXXXXXX,否则就是真机。
inlineboolIsVirtualPC_LDTCcheck()
{
unsignedshortldt_addr=0;
unsignedcharldtr[2];
_asmsldtldtr
ldt_addr=*((unsignedshort*)&ldtr);
returnldt_addr!=0x00000000;
}
登录后复制
4.注册表检测
inlineboolDetectVM()
{
HKEYhKey;
charszBuffer[64];
unsignedlonghSize=sizeof(szBuffer)-1;
if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,"硬件\\DESCRIPTION\\System\\BIOS\\",0,KEY_READ,&hKey)==ERROR_SUCCESS)
{
RegQueryValueEx(hKey,"SystemManufacturer",NULL,NULL,(unsignedchar*)szBuffer,&hSize);
if(strstr(szBuffer,"VMWARE"))
{
RegCloseKey(hKey);
returntrue;
}
RegCloseKey(hKey);
}
returnfalse;
}
登录后复制
å
5、GDT检测
inlineboolIsVirtualPC_GDTCheck()
{
unsignedintgdt_addr=0;
unsignedchargdtr[6];
_asmsgdtgdtr
gdt_addr=*((unsignedint*)&gdtr[2]);
return(gdt_addr>>24)==0xff;
}
登录后复制

三、双开跑跑时虚拟机上提示"在你的电脑中检测到了疑似加速的程序"??当反插件检测到游戏时,正在运行的程序发生冲突。
虚拟机询问“您的计算机中检测到疑似加速的程序。后面应该有一个括号。
您是不是忘记输入应该带有数字的单词了?这才是症结所在”
10303是常见的游戏系统读取问题:
1重新启动机器并尝试
2进入有网络连接的安全模式并尝试游戏
3开始-运行-进入msconfig-除了ctfmon是开机输入法外,其他都关闭然后重启机器再试。
如果以上4个都不能解决,系统还原肯定能解决
以上是我所知道的10303解决办法,你可以再去你的电脑/网络上请教专业人士。