[发明专利]程序的监控方法及其防御方法以及相关装置有效

专利信息
申请号: 201510080320.7 申请日: 2015-02-13
公开(公告)号: CN104598809B 公开(公告)日: 2017-04-19
发明(设计)人: 李常坤;路轶 申请(专利权)人: 北京奇虎科技有限公司;奇智软件(北京)有限公司
主分类号: G06F21/52 分类号: G06F21/52
代理公司: 北京市立方律师事务所11330 代理人: 王增鑫
地址: 100088 北京市西城区新*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 程序 监控 方法 及其 防御 以及 相关 装置
【说明书】:

技术领域

发明涉及计算机软件安全技术领域,具体而言,本发明涉及一种程序的监控方法及相关装置,以及一种程序的防御方法及相关装置。

背景技术

Android系统中的安全防御技术,通过以公知的方式向进程注入代码,劫持进程函数,以此类手段来实现对进程的监控和响应,现有技术主要是针对Android 4.4之前的版本中的Dalvik虚拟机技术而实现这种安全防御目的的。自Android 4.4之后,Android逐渐采用ART虚拟机代替Dalvik,这两者在技术上体现出一些差异。

Dalvik是Google公司自己设计用于Android平台的Java虚拟机。Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex(即Dalvik Executable)格式的Java应用程序的运行,.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。

ART代表Android Runtime,其处理应用程序执行的方式完全不同于Dalvik,Dalvik是依靠一个Just-In-Time(JIT)编译器去解释字节码。开发者编译后的应用代码需要通过一个解释器在用户的设备上运行,这一机制并不高效,但让应用能更容易在不同硬件和架构上运行。ART则完全改变了这套做法,在应用安装时就预编译字节码到机器码,这一机制称为Ahead-Of-Time(AOT)编译。在移除解释代码这一过程后,应用程序执行将更有效率,启动更快。

由于Dalvik与ART两种模式存在以上的区别,表现到内存空间,前者存在虚拟空间和真实空间之分,后者只有混合空间。因此,在ART模式下,企图通过传统的安全防御技术,来实现对程序进程所调用的函数的监控,将变得更加困难,尤其是对ART模式下的进程所施加的一些监控操作,将会改进其内存栈的结构,在栈上留下痕迹,导致内存访问出错。

更为关键的是,ART的垃圾回收机制也不同于Dalvik,前者只在虚拟空间回收内存垃圾,而后者在混合环境下的真实空间回收垃圾,如果未能考虑这一因素,无论是实现监控技术本身的内存数据,还是被监控进程自身的数据,在资源紧张时,均容易被ART的垃圾回收机制不当回收,导致进程崩溃。特别地,当Android 5.0版本之后,采用紧凑型内存回收机制,会对内存对象进行移动,如果未能跟踪这一变动,同样也会导致内存访问异常。

发明内容

本发明的目的旨在解决上述至少一个问题,提供一种程序的监控方法及相关装置,用于监控Android 5.0版本的应用程序函数;相应的,还提供一种程序的防御方法及相关装置。

本发明提供一种程序的监控方法,包括以下步骤:

定位目标函数所执行的机器码;

写入跳转指令对目标函数进行挂钩;

分发hook函数给已注册的Java回调函数,并防止创建的临时变量被系统垃圾回收机制回收;

是否继续处理hook后的目标函数;

若不处理,则跳回目标函数的挂钩处;

若处理则不跳回,对目标函数执行相应处理。

具体的,所述挂钩操作采用inline hook的方式。

具体的,所述跳转指令具体为ARM指令。

具体的,所述防止创建的临时变量被系统垃圾回收机制回收具体指Java函数调用Java函数和Java函数调用Native函数两种情况。

一种程序的监控装置,其特征在于,包括:

挂钩模块:用于定位目标函数所执行的机器码;

跳转模块:用于写入跳转指令对目标函数进行挂钩;

分发模块:用于分发hook函数给已注册的Java回调函数,并防止创建的临时变量被垃圾回收机制回收;

判断模块:用于判断是否处理hook后的目标函数;

跳回模块:用于跳回目标函数的挂钩处;

处理模块:用于对目标函数执行相应处理操作。

具体的,所述挂钩模块采用inline hook的方式。

具体的,所述跳转模块执行的跳转指令为ARM指令。

具体的,所述防止创建的临时变量被系统垃圾回收机制回收具体指Java函数调用Java函数和Java函数调用Native函数两种情况。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510080320.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top