[发明专利]一种基于内存管理的模式化软件关键行为跟踪方法有效
申请号: | 201310502650.1 | 申请日: | 2013-10-23 |
公开(公告)号: | CN103631712A | 公开(公告)日: | 2014-03-12 |
发明(设计)人: | 袁野;范志强 | 申请(专利权)人: | 北京信息控制研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/46;G06F12/02 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 安丽 |
地址: | 100048*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内存 管理 模式 软件 关键 行为 跟踪 方法 | ||
1.一种基于内存管理的模式化软件关键行为跟踪方法,其特征在于步骤如下:
(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)结束。
2.根据权利要求1中所述的一种基于内存管理的模式化软件关键行为跟踪方法,其特征在于:
所述步骤(10)中的控制指令是指汇编语言中的CALL指令,该控制指令使得监控目标软件行为节点在被劫持后进入跳转函数中;所述步骤(9)中的5字节内存块中,其中CALL指令占一个字节,其十六进制代码为0xE8,后4字节为跳转函数的偏移地址。
3.根据权利要求1中所述的一种基于内存管理的模式化软件关键行为跟踪方法,其特征在于:所述步骤(10)中的被劫持行为节点定位的方法如下:
(a)执行包含CALL指令的5字节内存块,其地址假设为addm,在调用执行跳转控制函数的同时,将返回地址addr压入当前栈帧;所述地址addr=addm+5;
(b)在跳转控制函数中,利用汇编指令取出未修改的API的返回地址addr,计算出5字节内存块地址addm;
(c)依据内存存储的映射数据和步骤(b)得到的5字节内存块地址addm,查找对应的监控行为节点,若存在则返回监控行为节点数据的地址;若不存在则返回NULL。
4.根据权利要求1中所述的一种基于内存管理的模式化软件关键行为跟踪方法,其特征在于:
所述步骤(10)中的栈容器管理未修改的API的返回地址方法如下:
(a)在跳转控制函数中,提取未修改的API的返回地址addo;
(b)获取当前线程号,判断监控探头是否存在该线程号对应的栈容器,
若不存在则执行(c);若存在则执行步骤(d);
(c)创建新的栈容器;
(d)将地址addo压入栈容器;
(e)执行API;
(f)获取当前线程号,在监控探头中定位对应的栈容器并提取出地址addo;
(g)提取完毕后,判断当前栈容器是否为空,若为空则执行步骤(h);若不为空则执行步骤(i);
(h)销毁当前栈容器,并删除监控探头中的栈容器纪录;
(i)恢复API的返回地址,并进行堆栈平衡。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息控制研究所,未经北京信息控制研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310502650.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种简单实用的隔离架
- 下一篇:吊装夹具