发明名称 一种基于内存管理的模式化软件关键行为跟踪方法
摘要 种基于内存管理的模式化软件关键行为跟踪方法,由部署在服务器的监控控制台和客户端的监控探头组成软件关键行为监控系统。监控控制台通过静态分析提取被监控软件的行为节点信息,定义关键行为及行为提取特征信息,采用探头注入的方式实现对目标软件的监控。监控探头利用函数劫持技术,并采用基于小内存管理的堆空间代码驻留技术和维持栈空间平衡的容器管理技术,实现关键行为信息的有效提取。本发明可以针对单线程、多线程及包含复杂递归调用关系的软件关键行为进行有效地跟踪,具有较高的灵活性和适应性,并且考虑了目标及其它软件的正常运行。
申请公布号 CN103631712A 申请公布日期 2014.03.12
申请号 CN201310502650.1 申请日期 2013.10.23
申请人 北京信息控制研究所 发明人 袁野;范志强
分类号 G06F11/36(2006.01)I;G06F9/46(2006.01)I;G06F12/02(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种基于内存管理的模式化软件关键行为跟踪方法,其特征在于步骤如下:(1)监控控制台首先加载监控目标软件的PE文件,通过静态映射的方式分析出PE文件的行为节点信息;所述行为节点信息是指PE文件所引用的操作系统及其它用户自定义的API信息,行为节点信息存储在PE文件的IAT导入地址表中;(2)根据步骤(1)得到的行为节点信息,通过添加和移除行为节点组成监控软件关键行为并存入数据库,并确定要提取的关键行为特征信息;所述关键行为特征信息包括参数、线程属性、进程属性、时间属性、位置属性;(3)判断是否首次监控目标软件,若是则执行步骤(6);若不是则被视为监控运行中的调整,执行步骤(4);(4)判断是否对新的行为节点进行监控,若是则执行步骤(7);若不是则执行步骤(5);(5)判断是否结束已被监控行为节点的监控,若是则执行步骤(12);若不是则被视为没有进行任何操作,进入步骤(14);(6)监控控制台根据输入的监控目标软件的进程号,采用远程注入的方式将监控探头加载到监控目标软件进程空间当中,并完成监控探头的初始化;所述监控探头的初始化包括建立与监控控制台的通信 连接、数据库连接及监控探头启动参数配置;(7)监控探头从数据库中提取被监控关键行为的行为节点信息,并由内存管理器将行为节点信息进行数据格式转化,形成内存中可管理的持久化数据;所述内存管理器为监控探头的功能组成模块,用于数据转化、数据初始化及数据所占内存的分配与释放;(8)内存管理器创建包含控制指令的5字节内存块,并建立与被监控行为节点的一对一映射关系;(9)监控探头修改PE文件中的被监控行为节点的IAT导入地址表为与其对应的5字节内存块地址用于实现监控行为节点的监控;(10)被监控的行为节点被劫持,监控目标软件通过跳转执行5字节小内存块中的控制指令进入跳转控制函数进行处理;所述的跳转控制函数处理包括以下步骤:(a)定位被劫持的监控行为节点并提取被劫持的行为节点的相关特征信息,同时将监控目标软件执行的API的返回地址进行修改用于保证API执行完毕后返回继续提取行为节点的相关特征信息,并将未修改的API的返回地址保存在监控探头的栈容器中;;(b)采用CALL指令调用监控目标软件执行的API入口地址执行API;所述监控目标软件执行的API入口地址存储于内存管理模块中被监控行为节点的数据结构中;(c)再次提取被劫持的监控行为节点的相关特征信息,并将保存在栈容器中的未修改的API的返回地址弹出用于保证跳转函数执行完毕后能够正确恢复到监控目标软件执行的逻辑轨道中;(11)根据监控控制台的指令或者监控目标软件是否自动终止,判断是否结束监控,若是则执行步骤(12);若不是则返回执行步骤(10);(12)结束监控目标软件的行为节点的监控,并恢复PE文件中的IAT导入地址表;(13)依据步骤(12)中结束监控的行为节点信息,释放其所占的内存及与之映射的5字节内存块;(14)结束。
地址 100048 北京市海淀区阜成路14号