[发明专利]一种虚拟化环境中的windows内核基地址及编译版本识别方法有效
申请号: | 201510921489.0 | 申请日: | 2015-12-14 |
公开(公告)号: | CN105573818B | 公开(公告)日: | 2018-09-11 |
发明(设计)人: | 党艳平;阳晓宇;赵亮;何伟 | 申请(专利权)人: | 北京北信源软件股份有限公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 北京连城创新知识产权代理有限公司 11254 | 代理人: | 刘伍堂 |
地址: | 100081 北京市海淀区中关村*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 虚拟 环境 中的 windows 内核 基地 编译 版本 识别 方法 | ||
1.一种虚拟化环境中的windows内核基地址及编译版本识别方法,其特征在于:包括基于虚拟机反省技术的内核定位和基于PE结构分析的加载镜像识别两个部分;所述的基于虚拟机反省技术的内核定位包括:虚拟机反省技术为基础,开始状态下读取CR4寄存器数据,获取当前内存分页结构,以这些数据为基础读取CR3寄存器数据,获取当前内核空间对应物理地址范围;从内核空间低地址开始,假设其为PE文件起始地址,分析出当前操作系统使用的内存架构和当前虚拟机内核空间地址对应的物理内存,所述的内存架构包括32位模式、32e模式或64位模式;之后从PE文件起始地址开始,以内存页为单位读取PE文件信息,分析属于内核空间的物理内存页,判断DOS前两个字节是否为魔数“MZ”,即判断页开始是否为可执行文件的魔数“MZ”;如果是则判定该页起始地址为镜像加载的起始地址,否则以页为单位自增PE文件起始地址后进入重新以页为单位读取PE文件信息状态;
所述的基于PE结构分析的加载镜像识别是根据所述的基于虚拟机反省技术的内核定位步骤中定位的PE起始地址,获取镜像调试段IMAGE_DEBUG_DIRECTORY数据,读取IMAGE_DEBUG_TYPE_CODEVIEW数据段信息并分析其PE头及调试信息段;通过对内存中调试信息段的分析获取在编译时生成的调试文件名称和PE文件唯一编译标示。
2.根据权利要求1所述的一种虚拟化环境中的windows内核基地址及编译版本识别方法,其特征在于:所述的内存分页结构包括虚拟机的部分寄存器和内存数据。
3.根据权利要求1所述的一种虚拟化环境中的windows内核基地址及编译版本识别方法,其特征在于:所述的内存中调试信息段的分析包括:判断IMAGE_DEBUG_TYPE_CODEVIEW前四个字符是否为“RSDS”,若是,则读取32位标示符、读取AGE变量数据,进而合成内核编译版本唯一标示,程序结束;否则返回所述的基于虚拟机反省技术的内核定位步骤中的以页为单位自增PE文件起始地址后进入重新以页为单位读取PE文件信息状态。
4.一种虚拟化环境中的windows内核基地址及编译版本识别方法,其特征在于包括以下步骤:
1)利用虚拟机反省技术获取CR4寄存器数据,并分析出该虚拟机运行在32位模式、32e模式或是64位模式下;
2)利用虚拟机反省技术获取CR3寄存器数据,并根据步骤1)获取信息分析出该虚拟机内核空间对应的物理内存范围;
3)搜索内存中PE结构,Windows在加载镜像时每个镜像都会以内对齐的方式加载,同时每个PE文件开始处都有魔数“MZ”,因此通过读取每个内存页前两个字节的信息并与“MZ”魔数对比就可以确定该页是否为PE文件加载起始页,如果为加载起始页则进入下一步骤,如果不是则搜索下一内存页;
4)以上一步获取的镜像加载首页地址为基地址,分析加载PE头部,获取调试信息段,该段中保存着对应符号文件的名称,该名称以“.pdb”结尾,如果该调试段中文件名称为“NTOSKRNL.PDB”、“NTKRNLMP.PDB”、“NTKRNLPA.PDB”或“NTKRPAMP.PDB”,则该镜像为内核镜像,该镜像加载地址为内核基地址,如果不是则回到步骤3继续搜索;
5)对第4步获取的调试段信息进行分析,获取保存在该段中的一个32位的唯一标示,根据该标示就可以建立该镜像与符号表之间的一一对应关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北信源软件股份有限公司,未经北京北信源软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510921489.0/1.html,转载请声明来源钻瓜专利网。