vmware虚拟机检测技术研究

vmware虚拟机检测技术研究

ID:22334866

大小:58.50 KB

页数:6页

时间:2018-10-28

vmware虚拟机检测技术研究_第1页
vmware虚拟机检测技术研究_第2页
vmware虚拟机检测技术研究_第3页
vmware虚拟机检测技术研究_第4页
vmware虚拟机检测技术研究_第5页
资源描述:

《vmware虚拟机检测技术研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、VMware虚拟机检测技术研究:在当信息安全领域,特别是在恶意软件分析等方面,经常利用虚拟机技术,以提高病毒分析过程中的安全性和节约硬件资源。该文通过对基于特权级压缩的VMachinemoniter)下的,VMM要控制客操作系统,所以虚拟机运行内核模式的ring级要比VMM的ring级低。特权级压缩虚拟机的VMM的ring级和主机内核模式的ring级是相同的,都是在ring0下,特权级压缩虚拟机必须执行特权级压缩,所以实际上客操作系统内核模式是在ring1下执行的,正因为如此,对于一些特殊指令,这种类型的虚拟

2、机是不能截获的,必须通过模拟改变才能达到虚拟机的想要执行的效果。因为虚拟机特权级比主机的要低,有些中断和异常是无法处理的,因此它要改变一些数据结构,以完成这些处理,但是模拟总是会有缺陷的,也正因为这些缺陷才存在检测虚拟机的方法。  3VMentImageXh'  movebx,0//任何值除了'VMXh'  movecx,10//得到VMovedx,5658h//端口号到dx  ineax,dx//读取端口,eax里返回版本号  cmpebx,564D5868h//读取成功,则ebx值为魔数  setz[rc

3、]//设置返回值  popebx  popecx  popedx  }  }  __except(EXCEPTION_EXECUTE_HANDLER)  {rc=false;}//出现异常说明是真机否则虚拟机  returnrc;  }  另外,此方法在VMsidtm;//读取idtr的内容到内存  printf("IDTR:%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",m[0],m[1],m[2],m[3],m[4],m[5]);//打印idtr的内容  printf("idtbase

4、:%#x",*((unsigned*)&m[2]));  //打印idt基地址  return(m[5]>0xd0)?1:0;//地址很高说明是虚拟机  __asmsgdtm;//读取gdtr的内容到内存  printf("GDTR:%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",m[0],m[1],m[2],m[3],m[4],m[5]);//打印gdtr的内容  printf("gdtbase:%#x",*((unsigned*)&m[2]));  //打印gdt基地址  re

5、turn(m[5]>0xd0)?1:0;//地址很高说明是虚拟机  __asmsldtm;//读取ldtr的内容到内存  printf("LDTR:%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x",m[0],m[1],m[2],m[3],m[4],m[5]);//打印ldtr的内容  return(m[0]!=0x00&&m[1]!=0x00)?1:0;  //前两字节为0000是真机否则是虚拟机  但是,当VMemset(&csdesc,0,sizeof(csdesc));  csdesc

6、.LimitLoit[19..16]  Z  {  popeax  push0x000F  pusheax  retf//使近程控制转移超过cs段界限  oreax,-1  jmpeax  }//产生超出cs段界限的近程控制转移,以产生通用保护错误  intdetect(LPEXCEPTION_POINTERSlpep)  {  if((UINT_PTR)(lpep->ExceptionRecord->ExceptionAddress)>EndUserModeAddress)  printf("VMulati

7、onmodedetected!");  returnEXCEPTION_EXECUTE_HANDLER;  }//看EIP是否改变,来检测虚拟机的存在  这种方法有效的前提是VMovebx,eax这条指令在真机中执行的话,AMD炫龙CPU上为9或15,Intel双核CPU上为100左右,而在VM  {  try_again:  rdtsc//执行指令前读取时间  movebx,eax//测试的指令  rdtsc//执行指令后读取时间  subeax,ebx//计算指令执行时间  pusheax  cmpe

8、ax,1  jztry_again//如果时间太小重新执行  popeax  movi,eax//把时间放到定义变量  }  4展望  虚拟机检测技术研究刚刚起步,还有许多问题等待我们进一步研究。目前,基于虚拟机检测技术大部分是基于具体虚拟机细节的,没有形成虚拟机检测的完整的理论体系,从当前的研究表明,基于性能的虚拟机检测技术是比较通用的,但由于虚拟机的产品形式和版本不同,都会存在着一定的差异,这需

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。