【摘要】 本发明属于网络安全技术领域,具体涉及一种基于硬件模拟器的处理隐藏进程的方法。本发明通过在模拟硬件环境上构建隐藏代码中恶意代码的运行环境,操纵和控制模拟CPU指令和各种模拟内存的访问操作,以CR3寄存器中CR3值为标志,检测出隐藏进程,监控隐藏进程的运行过程,由数据采集模块记录隐藏进程中恶意代码的运行信息;本发明同时提供从虚拟内存中直接提取恶意代码镜像。本发明的模拟硬件设备的所有虚拟CPU的指令和各种硬件操作都在翻译之后模拟执行,而不是直接使用代码片段在真实机器上执行,可在指令运行过程中精确计算该条指令运行的时间,从而实现对隐藏进程中恶意代码完全透明的分析。 【专利类型】发明申请 【申请人】中国科学院软件研究所 【申请人类型】科研单位 【申请人地址】100190 北京市海淀区中关村南四街4号 【申请人地区】中国 【申请人城市】北京市 【申请人区县】海淀区 【申请号】CN200810241102.7 【申请日】2008-12-30 【申请年份】2008 【公开公告号】CN101770551A 【公开公告日】2010-07-07 【公开公告年份】2010 【IPC分类号】G06F21/00; G06F9/455; G06F21/56 【发明人】杨轶; 苏璞睿; 司端锋; 冯登国 【主权项内容】一种基于模拟硬件环境的处理隐藏进程的方法,其步骤如下:1)按照目标文件在硬盘上的数据块排序,将数据块顺次添加到虚拟硬盘,转换为硬件模拟器识别的操作系统镜像;2)配置镜像路径、硬件模拟器的模拟内存大小及模拟CPU的类型;硬件模拟器加载步骤1)中的操作系统镜像,并启动该操作系统;3)虚拟CPU执行指令时,查找CR3寄存器中是否出现新的CR3值,若出现新CR3值,则遍历操作系统所有的EPROCESS结构是否包含有该CR3值;若不存在包含有该CR3值的EPROCESS结构,则将该CR3值对应的隐藏进程检测出来;4)利用硬件模拟器读取所述隐藏进程的内存,获取隐藏进程加载的动态库;比较所述动态库的导出表中的名称与API表中的名称,获取所述导出表中所有API的地址,构建API表;5)判断所述检测出的隐藏进程的EIP与所述API表中每个函数的第一条指令是否匹配,若匹配,则读取堆栈和寄存器获取函数参数和返回值,在虚拟内存中监控并读取参数对应执行的指令,数据采集模块记录该指令及该指令执行的数据,并返回给用户。 【当前权利人】中国科学院软件研究所 【当前专利权人地址】北京市海淀区中关村南四街4号 【统一社会信用代码】121000004000123696 【引证次数】3.0 【被引证次数】143 【他引次数】3.0 【被自引次数】4.0 【被他引次数】139.0 【家族引证次数】3.0 【家族被引证次数】143