[发明专利]一种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/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top