[发明专利]一种基于硬件模拟器的处理隐藏进程的方法无效
申请号: | 200810241102.7 | 申请日: | 2008-12-30 |
公开(公告)号: | CN101770551A | 公开(公告)日: | 2010-07-07 |
发明(设计)人: | 杨轶;苏璞睿;司端锋;冯登国 | 申请(专利权)人: | 中国科学院软件研究所 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F9/455 |
代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 余长江 |
地址: | 100190 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 硬件 模拟器 处理 隐藏 进程 方法 | ||
1.一种基于模拟硬件环境的处理隐藏进程的方法,其步骤如下:
1)按照目标文件在硬盘上的数据块排序,将数据块顺次添加到虚拟硬盘,转换为硬件模拟器识别的操作系统镜像;
2)配置镜像路径、硬件模拟器的模拟内存大小及模拟CPU的类型;硬件模拟器加载步骤1)中的操作系统镜像,并启动该操作系统;
3)虚拟CPU执行指令时,查找CR3寄存器中是否出现新的CR3值,若出现新CR3值,则遍历操作系统所有的EPROCESS结构是否包含有该CR3值;若不存在包含有该CR3值的EPROCESS结构,则将该CR3值对应的隐藏进程检测出来;
4)利用硬件模拟器读取所述隐藏进程的内存,获取隐藏进程加载的动态库;比较所述动态库的导出表中的名称与API表中的名称,获取所述导出表中所有API的地址,构建API表;
5)判断所述检测出的隐藏进程的EIP与所述API表中每个函数的第一条指令是否匹配,若匹配,则读取堆栈和寄存器获取函数参数和返回值,在虚拟内存中监控并读取参数对应执行的指令,数据采集模块记录该指令及该指令执行的数据,并返回给用户。
2.如权利要求1所述的一种基于模拟硬件环境的处理隐藏进程的方法,其特征在于,在虚拟CPU执行指令之前,判断是否存在提取代码镜像的请求,若存在,则在监控隐藏进程的执行指令时,读取物理内存中的代码,找到内存页在虚拟物理内存的位置,依据偏移一次性读出代码镜像,并记录在数据采集模块中。
3.如权利要求1或2所述的一种基于模拟硬件环境的处理隐藏进程的方法,其特征在于,步骤2)中还配置硬件模拟器的系统启动时间。
4.如权利要求1或2所述的一种基于模拟硬件环境的处理隐藏进程的方法,其特征在于,步骤2)中所述模拟CPU的类型通过硬件模拟器的译码模块获取,使模拟CPU的指令转化为本地CPU的指令。
5.如权利要求1或2所述的一种基于模拟硬件环境的处理隐藏进程的方法,其特征在于,步骤2)中所述模拟内存的大小为216M~1G之间。
6.如权利要求1或2所述的一种基于模拟硬件环境的处理隐藏进程的方法,其特征在于,所述步骤4)中采用字符比较的方法获得API地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810241102.7/1.html,转载请声明来源钻瓜专利网。