[发明专利]一种Windows平台下检测虚拟机监视器存在的方法有效
申请号: | 201110003479.0 | 申请日: | 2011-01-10 |
公开(公告)号: | CN102063594A | 公开(公告)日: | 2011-05-18 |
发明(设计)人: | 宁剑;刘波;陈林;肖枫涛;王天佐;陈新;张静;马晓龙;彭磊 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F9/455 |
代理公司: | 国防科技大学专利服务中心 43202 | 代理人: | 郭敏 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种Windows平台下检测虚拟机监视器存在的方法,目的是针对恶意代码利用VMM作为隐藏自身行为与提供恶意服务的平台的问题,提出一种通过资源差异来检测VMM存在的方法。技术方案是:先给页表Allocated PTEs和页表项Special PTE分配内存空间;对Allocated PTEs写入更改映射前地址A;对Special PTE写入更改映射后地址B;对Allocated PTEs依次进行访问,使所有指向地址A的页表项都存入页表缓冲寄存器中;把Allocated PTEs指针内容依次改为Special PTE所指向的地址B;执行Windows系统中的特权指令RDMSR;设置计数器,遍历页表缓冲寄存器内的全部页表项,通过判定计数器的数值是否跟N一致来则判定当前系统内是否存在VMM。采用本发明可对VMM进行有效检测,提高系统安全性。 | ||
搜索关键词: | 一种 windows 平台 检测 虚拟机 监视器 存在 方法 | ||
【主权项】:
一种Windows平台下检测虚拟机监视器存在的方法,其特征在于包括以下步骤:第一步、根据页表缓冲寄存器大小N,通过Windows提供的函数Malloc()为页表项Allocated PTEs和 Special PTE分配内存空间,Allocated PTEs为分配好内存空间且大小为N的一组页表项;Special PTE为分配好内存空间且大小为1的页表项;页表项是页表中的基本组成单位,其内容是当前页表项对应的物理地址;第二步、对Allocated PTEs通过Windows提供的函数Memset()写入更改映射前地址A即页表项中存储的原始物理地址;对Special PTE写入更改映射后地址B,即页表项中存储的更改以后的物理地址;第三步、对Allocated PTEs依次进行访问,使所有指向地址A的页表项都存入页表缓冲寄存器中,也就是说页表缓冲寄存器内全部的N条记录都指向更改映射前地址A;第四步、在不改变页表缓冲寄存器内容的前提下,把Allocated PTEs指针内容依次改为Special PTE所指向的地址B;第五步、执行Windows系统中的特权指令RDMSR,如果存在VMM,该指令引起系统控制权的下陷,即系统控制权转换给VMM;第六步、设置一个计数器Counter,初始值为N;设置指针i,并使该指针指向页表缓冲寄存器的起始地址;第七步、若i >=起始地址+N,转第十步;否则转第八步;第八步、对指针i所指向的页表项内的指针地址进行判定:若当前页表项内的指针地址为更改映射前的地址A,i加1,转第七步;若当前页表项内的指针地址不为更改映射前的地址A,转第九步;第九步、使计数器Counter数值减1,i加1,并转第七步;第十步、判定计数器Counter的数值是否跟页表缓冲寄存器大小N一致,如果计数器Counter的数值为N,则判定当前系统内不存在VMM;如果计数器Counter的数值小于N,判定当前系统内存在VMM。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110003479.0/,转载请声明来源钻瓜专利网。
- 上一篇:向量化数据传输的方法和装置
- 下一篇:一种耐磨耐热麻口铸铁材料及制备方法