[发明专利]程序的监控方法及其防御方法以及相关装置有效
申请号: | 201510080320.7 | 申请日: | 2015-02-13 |
公开(公告)号: | CN104598809B | 公开(公告)日: | 2017-04-19 |
发明(设计)人: | 李常坤;路轶 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京市立方律师事务所11330 | 代理人: | 王增鑫 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 监控 方法 及其 防御 以及 相关 装置 | ||
1.一种程序的监控方法,其特征在于,包括以下步骤:
定位目标函数所执行的机器码;
写入跳转指令对目标函数进行挂钩;
分发hook函数给已注册的Java回调函数,并防止创建的临时变量被系统垃圾回收机制回收,所述防止创建的临时变量被系统垃圾回收机制回收具体指Java函数调Java函数和Java函数调Native函数两种情况,所述防止创建的临时变量被系统垃圾回收机制回收还包括对系统垃圾回收机制的内存整理操作进行规避,步骤如下:将hook函数创建的Java对象转成JNI对象之后将JNI对象传递给ART的接口函数进行解码,解码后获取JNI对象引用的hook函数创建的原Java对象;是否继续处理hook后的目标函数;
若不处理,则跳回目标函数的挂钩处;
若处理则不跳回,对目标函数执行相应处理。
2.根据权利要求1所述的一种程序的监控方法,其特征在于,所述挂钩操作采用inline hook的方式。
3.根据权利要求1所述的一种程序的监控方法,其特征在于,所述跳转指令具体为ARM指令。
4.根据权利要求1所述的一种程序的监控方法,其特征在于,所述ART接口函数为DecodeJObject(jobject obj)函数。
5.一种程序的监控装置,其特征在于,包括:
挂钩模块:用于定位目标函数所执行的机器码;
跳转模块:用于写入跳转指令对目标函数进行挂钩;
分发模块:用于分发hook函数给已注册的Java回调函数,并防止创建的临时变量被系统垃圾回收机制回收,所述防止创建的临时变量被系统垃圾回收机制回收具体指Java函数调Java函数和Java函数调Native函数,所述防止创建的临时变量被系统垃圾回收机制回收还包括对系统垃圾回收机制的内存整理操作进行规避,步骤如下:将hook函数创建的Java对象转成JNI对象之后将JNI对象传递给ART的接口函数进行解码,解码后获取JNI对象引用的hook函数创建的原Java对象;
判断模块:用于判断是否继续处理hook后的目标函数;
跳回模块:用于跳回目标函数的挂钩处;
处理模块:用于对目标函数执行相应处理。
6.根据权利要求5所述的一种程序的监控装置,其特征在于,所述挂钩模块采用inline hook的方式。
7.根据权利要求5所述的一种程序的监控装置,其特征在于,所述跳转模块执行的跳转指令为ARM指令。
8.根据权利要求5所述的一种程序的监控装置,其特征在于,所述ART接口函数为DecodeJObject(jobject obj)函数。
9.一种程序的防御方法,包括以下步骤:
向系统的服务进程注入so文件;
监控系统中应用程序的事件行为;
响应服务进程的指令,处理所述应用程序进程的事件行为,
其特征在于,上述监控步骤由权利要求1至4中任一所述的一种程序的监控方法执行。
10.一种程序的防御装置,包括:
注入模块:用于向系统的服务进程注入so文件;
监控模块:用于监控系统中应用程序的事件行为;
响应模块:用于响应服务进程的指令,处理所述应用程序进程的事件行为,
其特征在于,所述监控模块用于执行如权利要求1至4任一所述的一种程序的监控方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510080320.7/1.html,转载请声明来源钻瓜专利网。